尝试在编译时(或打包时)使用maven和intellij复制jar文件

sbtkgmzw  于 2023-02-21  发布在  Maven
关注(0)|答案(1)|浏览(175)

我有一个要在其他项目中使用的jar文件项目。我想将jar文件复制到其他项目的文件夹中。理想情况下,我希望依赖项目比较其文件夹中的jar文件,如果库jar文件较新,则复制库jar文件。我愿意接受库项目在每次打包时将jar文件复制到其他项目。
我发现了许多例子,但我无法让它们中的任何一个为我工作。
下面是我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>SqlPersistance</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>19</maven.compiler.source>
        <maven.compiler.target>19</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-artifact</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}</artifactId>
                                    <version>${project.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>../TEST1</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

TEST1文件夹永远不会被创建。

5sxhfpxr

5sxhfpxr1#

如果你想在另一个本地编译的maven项目中使用一个依赖项,你所需要做的就是在依赖项项目上运行mvn clean install,这会把jar添加到你的本地m2仓库中,然后,你需要把它作为一个依赖项添加到另一个pom中。maven将在本地m2文件夹中查找该依赖项,并从那里获取它。

相关问题