java - Maven 复制依赖项不起作用

标签 java maven jar dependencies classpath

这个问题已经被问过,但没有一个解决方案对我有用,所以:

我想复制通过 POM.xml 构建中的依赖标记指定的 jar:

<dependency>
...
</dependency>

进入像 target/lib 这样的文件夹

pom.xml:

<build>
    <defaultGoal>install</defaultGoal>
    <directory>${basedir}/target</directory>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.googlecode.addjars-maven-plugin</groupId>
                <artifactId>addjars-maven-plugin</artifactId>
                <version>1.0.5</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>add-jars</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${project.build.directory}/my-repo</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <classpathPrefix>lib/</classpathPrefix>
                            <addClasspath>true</addClasspath>
                            <mainClass>Swapper</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <includeScope>runtime</includeScope>
                            <outputDirectory>${project.build.directory}/lib/</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

就像我说的,根本没有复制任何内容。但根据该门户网站上的一些问答,它应该可以工作。

有什么想法吗?

最佳答案

您正在 <pluginManagement> 中声明您的插件部分。这一切都很好,但如果希望它们执行,您需要在 <pluginManagement> 之外声明它们。部分:

<build>
  <pluginManagement>
     ...
  </pluginManagement>
  <plugins>
    <plugin>
     <artifactId>addjars-maven-plugin</artifactId>
    </plugin>
    <plugin>
     <artifactId>maven-jar-plugin</artifactId>
    </plugin>
    <plugin>
     <artifactId>maven-dependency-plugin</artifactId>
    </plugin>
  </plugins>
</build>

想想<pluginManagement>就像你想到 <dependencyManagement> 一样,但对于插件。

关于java - Maven 复制依赖项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33261354/

相关文章:

java - 通过 HTTP 为 Java 应用程序远程登录

为多个应用程序提供服务的 Java 缓存

maven - Maven编译-错误log4j

java - 从可执行 JAR 文件中递归读取图像

java - 在另一台计算机上运行java项目时出现"A fatal error has been detected by the Java Runtime Environment"

java - 如何检测 java 系统类?

java - Elasticsearch RestHighLevelClient 缺少传递依赖项

java - 使用intelliJ使用quickstart创建了一个maven项目,似乎没有生成任何dir结构?

没有 X 的 Java web 启动

java - 如何使用终端创建 .jar 文件