Software Development
Well, I’ve recently gone to the “silver” side and acquired a MacBook Pro to use it for development when I am not at my PC. By development I mean here mainly Java + Javascript development. So I’ve written this post to remember what I had to install/configure to achieve this goal.
I need to mention that until now I’ve been a user of Windows (XP/7) and Linux (Ubuntu/Mint/Cent OS) operation systems.
At the time of this writing MacBook Pro runs on OS X Yosemite Version 10.10.5. The new version El Capitan was available, but I didn’t do the upgrade first because it had to many bad reviews…
JDK
So first things first- installe a Java Development Kit (JDK), which is a software development environment used for developing Java applications and applets. It includes the Java Runtime Environment (JRE), an interpreter/loader (java), a compiler (javac), an archiver (jar), a documentation generator (javadoc) and other tools needed in Java development.
Download the Mac OS X x64 .dmg files version
You can find out where the JDK is installed, by executing the /usr/libexec/java_home -v 1.7
, on the terminal command:
Adrians-MacBook-Pro:ama ama$ /usr/libexec/java_home -v 1.8 /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home Adrians-MacBook-Pro:ama ama$ /usr/libexec/java_home -v 1.7 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home Adrians-MacBook-Pro:ama ama$
You will need to know this when setting up a project in IntelliJ for example.
Set JAVA_HOME
JAVA_HOME
is just a convention, usually used by Tomcat, other Java EE app servers and build tools such as Maven
to find where Java lives.
In Mac OSX 10.5 or later, Apple recommends to set the $JAVA_HOME
variable to /usr/libexec/java_home
, just export $JAVA_HOME
in file ~/.bash_profile
or ~/.profile
$ vim .bash_profile export JAVA_HOME=$(/usr/libexec/java_home) $ source .bash_profile $ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
Maven
With the JAVA_HOME environment variable configure, go to the Apache Maven Downloads website, download the .tar.gz or .zip archive and unpack it in a folder of your choice – I put it under the /opt directory:
tar xzvf apache-maven-3.3.3-bin.tar.gz
It is also recommended to create a symbolic link to the Maven home, so that when let’s say you update your Maven version, you’ll only have to change the symbolic link target:
ln -s /opt/apache-maven-3.3.3 /opt/maven
Then set Maven in the environment variables
vim ~/.bash_profile
Add these lines to .bash_profile
export M2_HOME=/path/to/maven export M2=$M2_HOME/bin export PATH=$M2:$PATH
Close the terminal and open a new one. When you try now to get the maven versioning you should get something like the following:
ama$ mvn -version Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00) Maven home: /opt/maven Java version: 1.8.0_65, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"
An alternative is to use Homebrew and execute the following command:
brew install maven
GIT
Open a terminal window and type the following command for example:
$ git --version
At the next moment you will be asekd to install Xcode. This is the a complete developer toolset for building apps that run on Apple TV, Apple Watch, iPhone, iPad, and Mac. It includes the Xcode IDE, simulators, and all the required tools and frameworks to build apps for iOS, watchOS, tvOS, and OS X (it also contains GNU Compiler Collection-gcc).
You can do the above, but if you do not want everything from that package you can install Homebrew (“Homebrew installs the stuff you need that Apple didn’t.”) and run the following commands:
brew install gcc brew install git
Either way once Git is installed the initial command git –version will bring the installed version:
$ git --version git version 2.4.9 (Apple Git-60)
If you are working with Github, I recommend you also install the Github Desktop
IntelliJ
In the mean time IntelliJ has become my favorite IDE, mainly because you have almost the same feature support when doing front-end development. To install it, go to the download page and follow the installation instructions:
INSTALLATION INSTRUCTIONS
- Download the idea-15.dmg OS X Disk Image file.
- Mount it as another disk in your system.
- Copy IntelliJ IDEA to your Applications folder
Once done you need to get acquainted with key shortcuts for OS X – IntelliJ IDEA Mac OS X Keymap
Extras
NodeJS
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world. Recently is a must have tool if you need to do fancier stuff on your front-end part of your application.
Go to https://nodejs.org/ and download the latest version for OS X (x64). Double click on the node-v4.2.2.pkg file (latest stable version at the writing of the post) and follow the installation instructions steps.
When ready open a terminal window and check the version installed to see if it is working:
$ node --version v4.2.2
Terminal window
Set background black
Open Terminal, then go to the Terminal menu -> Preferences, choose the Settings tab and set the Pro theme as the default.
Often used UNIX keys on the German/Swiss keyboard
I bought the Mac Book to use it as developer machine on the go and one of my initial surprises was the missing of some keys a developer/terminal user uses pretty often like []|{}~
Find below a map for these keys:
So here it is, my personal keyboard map reminder for the Mac OS X:
| | pipe symbol | <alt>7 |
\\ | backslash | <alt><shift>7 = <alt>/ |
[ | left (opening) square bracket | <alt>5 |
] | right (closing) square bracket | <alt>6 |
{ | left (opening) curly bracket | <alt>8 |
} | right (closing) curly bracket | <alt>9 |
~ | Tilde | <alt>n followed by the space key |
@ | “At” symbol | <alt>g (lowercase G) |
How to test everything is working
A smoke test to verify if everything installed is functioning properly “together” is to generate an application with JHipster and push it to a git repository.
JHipster is a Yeoman generator, used to create a Spring Boot + AngularJS project.
Resources
- Linux/Mac OS X Terminal: make the background black, not white
- How to Set $JAVA_HOME environment variable on Mac OS X
- Maven installation guide
- Mac OS X: often used UNIX keys on the German keyboard
For any suggestions please leave a comment. Thank you.
Reference: | How to prepare the MacBook Pro for Java development and more from our JCG partner Adrian Matei at the Codingpedia.org blog. |
I’d recommend you check out http://brew.sh to install various tools like Maven, much easier.
Advice: use Homebrew for all this. Don’t start effing around with downloading stuff.
Advice: tell IntelliJ to use the maven you have installed.