如何包含从插件wget下载的jar作为Maven项目中的依赖项

时间:2019-01-24 12:44:51

标签: java

我在远处有一个Jar。我可以使用com.googlecode.maven-download-plugin将其下载到src / lib中。我想在我的代码中使用此jar作为依赖项来解决编译错误。

<build>
    <plugins>
        <plugin>
            <groupId>com.googlecode.maven-download-plugin</groupId>
            <artifactId>download-maven-plugin</artifactId>
            <version>1.4.1</version>
            <executions>
                <execution>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>wget</goal>
                    </goals>
                    <configuration>
                        <url>http://remoteMachine/file/hello.zip</url>
                        <unpack>true</unpack><outputDirectory>${project.build.directory}/../src/lib</outputDirectory>                           
                    </configuration>
                </execution>
            </executions>                                           
        </plugin>
    </plugins>
</build>

3 个答案:

答案 0 :(得分:1)

您可以创建一个指向罐子的存储库

<repository>
    <id>cool project</id>
    <name>My cool repo</name>
    <url>file://${dirWithProject}/libs</url>
</repository>

然后只需添加依赖项

<dependency>
    <groupId>yourGroupUd</groupId>
    <artifactId>your-artifact-id</artifactId>
    <version>0.0.1</version>
</dependency>

另一种方法是使用mvn install:install-file

或添加类似的依赖项

 <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>

      <dependency>
         <groupId>ldapjdk</groupId>
         <artifactId>ldapjdk</artifactId>
         <scope>system</scope>
         <version>1.0</version>
         <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
      </dependency>
   </dependencies>

来源http://www.tutorialspoint.com/maven/maven_external_dependencies.htm

答案 1 :(得分:1)

最好的方法是使用maven install指向存储在文件系统上的jar, 并在pom中将其用作常规依赖项。

答案 2 :(得分:0)

您当前正在尝试违反Maven约定。如果您使用自定义插件随机解压缩ZIP,则很可能会破坏某些Maven功能,例如与-T标志并行执行。最糟糕的是,违反约定会使您的构建更难以理解,并且失去Maven的最大好处convention over configuration

将ZIP转换为适当的Maven依赖项,并使用标准的依赖项解析机制,<dependency>中的pom.xml部分。