java - Generate a jar for maven -


this question has answer here:

so created standalone app , generates jar. when run eclipse works, "run as" -> java application.

when try run console started problems swt, added manifest swt.jar , started problems next dependency on pom.

here example of pom.xml swt.jar

manifest-version: 1.0 main-class: mapper.osm.main.main class-path: swt.jar 

i downloaded swt , copied on same folder of jar. dont want add libraries manually manifest. feels there should easier, more maven way this.

this error got after adding swt

$ java -jar mapper.jar java.lang.noclassdeffounderror: org/opengis/geometry/coordinate/position         @ java.lang.class.getdeclaredmethods0(native method)         @ java.lang.class.privategetdeclaredmethods(unknown source)         @ java.lang.class.privategetmethodrecursive(unknown source)         @ java.lang.class.getmethod0(unknown source)         @ java.lang.class.getmethod(unknown source)         @ sun.launcher.launcherhelper.validatemainclass(unknown source)         @ sun.launcher.launcherhelper.checkandloadmain(unknown source) caused by: java.lang.classnotfoundexception: org.opengis.geometry.coordinate.position         @ java.net.urlclassloader.findclass(unknown source)         @ java.lang.classloader.loadclass(unknown source)         @ sun.misc.launcher$appclassloader.loadclass(unknown source)         @ java.lang.classloader.loadclass(unknown source)         ... 7 more error: jni error has occurred, please check installation , try again exception in thread "main" 

before same swt graphical libraries. pom.xml

<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelversion>4.0.0</modelversion>      <groupid>mapper</groupid>     <artifactid>mapper.osm</artifactid>     <version>0.0.1-snapshot</version>     <packaging>jar</packaging>      <name>mapper,osm</name>     <url>http://maven.apache.org</url>      <properties>         <project.build.sourceencoding>utf-8</project.build.sourceencoding>         <geotools.version>13.2</geotools.version>     </properties>      <dependencies>         <!-- eclipse's jface extensions -->         <dependency>             <groupid>org.eclipse.ui</groupid>             <artifactid>org.eclipse.ui.workbench</artifactid>             <version>3.7.1.v20120104-1859</version>         </dependency>         <!-- swt -->         <dependency>             <groupid>org.eclipse.swt</groupid>             <artifactid>${swt.artifactid}</artifactid>             <version>4.4</version>             <scope>compile</scope>         </dependency>          <dependency>             <groupid>junit</groupid>             <artifactid>junit</artifactid>             <version>3.8.1</version>             <scope>test</scope>         </dependency>          <dependency>             <groupid>org.geotools</groupid>             <artifactid>gt-shapefile</artifactid>             <version>${geotools.version}</version>         </dependency>         <dependency>             <groupid>org.geotools</groupid>             <artifactid>gt-swing</artifactid>             <version>${geotools.version}</version>         </dependency>         <dependency>             <groupid>com.vividsolutions</groupid>             <artifactid>jts</artifactid>             <version>1.12</version>         </dependency>         <dependency>             <groupid>joda-time</groupid>             <artifactid>joda-time</artifactid>             <version>2.8.2</version>         </dependency>         <dependency>             <groupid>commons-io</groupid>             <artifactid>commons-io</artifactid>             <version>2.4</version>         </dependency>         <!-- rxtx -->         <dependency>             <groupid>org.bidib.jbidib.org.qbang.rxtx</groupid>             <artifactid>rxtxcomm</artifactid>             <version>2.2</version>         </dependency>         <dependency>             <groupid>com.itextpdf</groupid>             <artifactid>itextpdf</artifactid>             <version>5.5.8</version>         </dependency>          <dependency>             <groupid>xerces</groupid>             <artifactid>xercesimpl</artifactid>             <version>2.11.0</version>         </dependency>          <!-- instalador izpack -->         <dependency>             <groupid>org.codehaus.izpack</groupid>             <artifactid>izpack-maven-plugin</artifactid>             <version>5.0.6</version>             <scope>provided</scope>         </dependency>       </dependencies>      <repositories>         <repository>             <id>swt-repo</id>             <url>https://swt-repo.googlecode.com/svn/repo/</url>         </repository>         <repository>             <id>maven2-repository.dev.java.net</id>             <name>java.net repository</name>             <url>http://download.java.net/maven/2</url>         </repository>         <repository>             <id>osgeo</id>             <name>open source geospatial foundation repository</name>             <url>http://download.osgeo.org/webdav/geotools/</url>         </repository>     </repositories>     <build>         <finalname>mapper</finalname>         <plugins>             <plugin>                 <!-- build executable jar -->                 <groupid>org.apache.maven.plugins</groupid>                 <artifactid>maven-jar-plugin</artifactid>                 <version>2.6</version>                 <configuration>                     <archive>                         <manifest>                             <mainclass>mapper.osm.main.main</mainclass>                         </manifest>                     </archive>                 </configuration>             </plugin>             <plugin>                 <groupid>org.apache.maven.plugins</groupid>                 <artifactid>maven-compiler-plugin</artifactid>                 <version>3.3</version>                 <configuration>                     <source>1.8</source>                     <target>1.8</target>                     <encoding>utf-8</encoding>                 </configuration>             </plugin>             <plugin>                 <groupid>com.zenjava</groupid>                 <artifactid>javafx-maven-plugin</artifactid>                 <version>2.0</version>                 <configuration>                     <mainclass>org.korecky.myjavafx.app</mainclass>                 </configuration>             </plugin>         </plugins>     </build>      <profiles>         <profile>             <id>unix-amd64</id>             <activation>                 <os>                     <family>unix</family>                     <arch>amd64</arch>                 </os>             </activation>             <properties>                 <swt.artifactid>org.eclipse.swt.gtk.linux.x86_64</swt.artifactid>             </properties>         </profile>         <profile>             <id>windows-x86</id>             <activation>                 <os>                     <family>windows</family>                     <arch>x86</arch>                 </os>             </activation>             <properties>                 <swt.artifactid>org.eclipse.swt.win32.win32.x86</swt.artifactid>             </properties>         </profile>         <profile>             <id>windows64</id>             <activation>                 <os>                     <family>dos</family>                     <arch>amd64</arch>                 </os>             </activation>             <properties>                 <swt.artifactid>org.eclipse.swt.win32.win32.x86_64</swt.artifactid>             </properties>         </profile>         <profile>             <id>windows-x86_64</id>             <activation>                 <os>                     <family>windows</family>                     <arch>x86_64</arch>                 </os>             </activation>             <properties>                 <swt.artifactid>org.eclipse.swt.win32.win32.x86_64</swt.artifactid>             </properties>         </profile>         <profile>             <id>macosx-x86</id>             <activation>                 <os>                     <family>mac</family>                     <arch>x86</arch>                 </os>             </activation>             <properties>                 <swt.artifactid>org.eclipse.swt.cocoa.macosx</swt.artifactid>             </properties>         </profile>         <profile>             <id>macosx-x86_64</id>             <activation>                 <os>                     <family>mac</family>                     <arch>x86_64</arch>                 </os>             </activation>             <properties>                 <swt.artifactid>org.eclipse.swt.cocoa.macosx.x86_64</swt.artifactid>             </properties>         </profile>     </profiles> </project> 

try using maven dependency plugin copy jars, , maven jar plugin "addclasspath" node add dependencies manifest:

<plugin>     <groupid>org.apache.maven.plugins</groupid>     <artifactid>maven-dependency-plugin</artifactid>     <executions>         <execution>             <id>copy-dependencies</id>             <phase>package</phase>             <goals>                 <goal>copy-dependencies</goal>             </goals>             <configuration>                 <outputdirectory>${project.build.directory}/lib</outputdirectory>             </configuration>         </execution>     </executions> </plugin> <plugin>     <groupid>org.apache.maven.plugins</groupid>     <artifactid>maven-jar-plugin</artifactid>     <configuration>         <archive>             <manifest>                 <addclasspath>true</addclasspath>                 <classpathprefix>lib</classpathprefix>                 <mainclass>my.test.app</mainclass>             </manifest>         </archive>     </configuration> </plugin> 

this copy jars target/lib , add them manifest prefix lib/


Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -