rcr*_*ick 52 java deployment maven-2 desktop-application
我刚开始使用Maven,(真的评估它)我需要能够为我的应用程序快速生成一个JAR文件和一个包含所有依赖项的目录(例如,lib),以便我可以部署这两个以独立的方式运行.使用正确的清单生成JAR文件很简单,但我不知道如何让Maven将当前项目的依赖项复制到lib我可以部署的目录中.
由于这是针对独立的Java应用程序,我对部署到Maven存储库不感兴趣,这也是相当简单的,或者至少很容易googleable.
我已经找到了除了将依赖的JAR文件复制到某个指定目录之外的所有操作.这是我正在寻找的工作流程:
$ mvn clean
$ mvn package
$ cp -r target/{lib,myApp.jar} installLocation
Run Code Online (Sandbox Code Playgroud)
然后,运行myApp.jar从installLocation一个JAR文件应该"只是工作"无论我的$CLASSPATH.
尝试抢先一些答案:
<classpathPrefix>和<classpathMavenRepositoryLayout>完成这项工作 - 但仅限于我的机器.(通过:<classpathPrefix>${settings.localRepository}</classpathPrefix>)laz*_*laz 80
你要调查的是Maven的依赖插件.在pom.xml中添加类似以下的内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<outputDirectory>
${project.build.directory}
</outputDirectory>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后运行mvn clean dependency:copy-dependencies以复制执行副本.将它与程序集插件结合使用,您可以将所有内容打包到一个自包含的存档中进行分发.
小智 9
我不关心Shade插件,因为它将所有包装中的所有包装卷起来.
要包含所有外部库,您可以使用上面提到的Dependency Plugin.
此示例将在"package"阶段之前的"target/classes"下创建"lib"目录.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/classes/lib</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeGroupIds>
junit,org.hamcrest,org.mockito,org.powermock,${project.groupId}
</excludeGroupIds>
</configuration>
</execution>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>sources</goal>
</goals>
</execution>
</executions>
<configuration>
<verbose>true</verbose>
<detail>true</detail>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</plugin>
看一下maven的依赖插件,特别是复制依赖目标。用法部分描述了如何准确地执行您想要的操作。
要从命令行执行此操作,只需执行以下操作:
$ mvn dependency:copy-dependencies -DoutputDirectory=OUTPUT_DIR
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39305 次 |
| 最近记录: |