0
我有一个Java应用程序和使用maven-assembly-plugin我想添加我的依赖关系到我的版本中的/ lib文件夹。Maven程序集插件添加依赖关系
在一个web项目中,它的简单因为jars已经在war文件中。由于所有的外部jar文件都在我的本地.m2版本库中,所以我没有想到在标准java应用程序中这样做。
我有一个Java应用程序和使用maven-assembly-plugin我想添加我的依赖关系到我的版本中的/ lib文件夹。Maven程序集插件添加依赖关系
在一个web项目中,它的简单因为jars已经在war文件中。由于所有的外部jar文件都在我的本地.m2版本库中,所以我没有想到在标准java应用程序中这样做。
我经常与该组件配置
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>assembly</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<outputFileNameMapping>${artifact.groupId}.${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
<useProjectArtifact>false</useProjectArtifact>
<!-- you may place excludes here -->
</dependencySet>
</dependencySets>
<files>
<file>
<outputDirectory>/</outputDirectory>
<source>${project.build.directory}/${project.artifactId}-${project.version}.jar</source>
<destName>${project.artifactId}.jar</destName>
</file>
</files>
<fileSets>
<fileSet>
<outputDirectory>config</outputDirectory>
<directory>config</directory>
</fileSet>
<fileSet>
<outputDirectory>/</outputDirectory>
<directory>src/main/bin</directory>
</fileSet>
</fileSets>
</assembly>
工作,然后我用
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>create-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
引用它在我的POM如果您还需要一个运行的JAR:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifestEntries>
<Class-Path>config/</Class-Path>
</manifestEntries>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<classpathLayoutType>custom</classpathLayoutType>
<customClasspathLayout>$${artifact.groupId}.$${artifact.artifactId}.$${artifact.extension}</customClasspathLayout>
</manifest>
</archive>
</configuration>
</plugin>
tnx useProjectArtifact = false的任何原因?你在哪里复制你的项目jar? – Spring
是的,我们决定在根目录下有* main * JAR。这反映在程序集的文件部分。我们通常在src/main/bin中还有几个二进制文件(例如Windows的批处理文件等),这些文件也被复制到根目录。 – Seelenvirtuose