我如何让我的项目的运行时依赖复制到目标/lib文件夹?
就像现在一样,在mvn清洁安装后,目标文件夹只包含我的项目的jar,但没有运行时依赖项。
我如何让我的项目的运行时依赖复制到目标/lib文件夹?
就像现在一样,在mvn清洁安装后,目标文件夹只包含我的项目的jar,但没有运行时依赖项。
当前回答
如果你的项目是war或ear类型,专家会复制依赖项。
其他回答
最好的方法取决于你想做什么:
If you want to bundle your dependencies into a WAR or EAR file, then simply set the packaging type of your project to EAR or WAR. Maven will bundle the dependencies into the right location. If you want to create a JAR file that includes your code along with all your dependencies, then use the assembly plugin with the jar-with-dependencies descriptor. Maven will generate a complete JAR file with all your classes plus the classes from any dependencies. If you want to simply pull your dependencies into the target directory interactively, then use the dependency plugin to copy your files in. If you want to pull in the dependencies for some other type of processing, then you will probably need to generate your own plugin. There are APIs to get the list of dependencies, and their location on disk. You will have to take it from there...
试试这样做:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
mvn install dependency:copy-dependencies
工作为我在目标文件夹中创建的依赖目录。喜欢它!
如果你的项目是war或ear类型,专家会复制依赖项。
简单地把刚才说过的内容讲一遍。我想创建一个可执行JAR文件,其中包括我的依赖关系和我的代码。这招对我很管用:
(1)在pom中,在<build><plugins>下,我包括:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<archive>
<manifest>
<mainClass>dk.certifikat.oces2.some.package.MyMainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
(2)运行mvn compile assembly:assembly在项目的目标目录下生成所需的my-project-0.1-SNAPSHOT-jar-with-dependencies.jar。
(3)我用java -jar my-project-0.1-SNAPSHOT-jar-with-dependencies.jar运行JAR