Building Struts 2 on Mac OS X with Maven using mvn install
When trying to build Struts 2 on Mac OS X (I'm using 10.4.8) you might get an error like:
class="codeContent" class="codeContent"[ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Failed to resolve artifact. ---------- 1) com.sun:tools:jar:1.5.0 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.sun -DartifactId=tools \ -Dversion=1.5.0 -Dpackaging=jar -Dfile=/path/to/file Path to dependency: 1) org.apache.struts:struts2-core:jar:2.0.3-SNAPSHOT 2) org.apache.struts:struts-annotations:jar:1.0-SNAPSHOT 3) com.sun:tools:jar:1.5.0 ---------- 1 required artifact is missing. for artifact: org.apache.struts:struts2-core:jar:2.0.3-SNAPSHOT from the specified remote repositories: Maven Snapshots (http://snapshots.maven.codehaus.org/maven2/), central (http://repo1.maven.org/maven2), opensymphony (http://maven.opensymphony.com), apache.snapshots (http://people.apache.org/repo/m2-snapshot-repository), snapshots-maven-codehaus (http://snapshots.maven.codehaus.org/maven2)
The problem is that there is no tools.jar on Mac OS X. The analog for tools.jar on Mac OS X is classes.jar. A quick fix to allow the build to continue is to change the sun.jdk dependency in a pom.xml. For this, I edited the
class="commentblock"pom.xml
located in
class="commentblock"~/.m2/repository/org/apache/struts/struts-annotations/1.0-SNAPSHOT/
class="codeContent" <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.5.0</version> <scope>system</scope> <!-- This line doesn't work on a Mac: <systemPath>${java.home}/../lib/tools.jar</systemPath> --> <systemPath>${java.home}/../Classes/classes.jar</systemPath> </dependency>
Troubleshooting and other Tips
OutOfMemoryError
If you are getting OutOfMemoryError exceptions when attempting a full build of Mule you may try increasing the max heap and the PermGen space sizes. Either export a MAVEN_OPTS variable in your shell or add it to the original mvn script.
class="codeContent"MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m or edit your bash shell export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
Comments
Post a Comment