是否有任何插件可以加载/使用非Maven依赖项?

yeg*_*256 12 java maven-2

我需要在我的项目中使用第三方JAR库(实际上它是EclipseDresden OCL),它不是作为Maven工件提供的.相反,它只是一个可下载的JAR文件.我可以像我使用的那样指示Maven使用这个JAR文件<dependencies>吗?我想应该有一些插件用于此目的?

PS.我只是不想在我的SVN存储库中添加35Mb的第三方二进制文件.

以这种方式配置会很高兴:

<build>
  <plugins>
    <plugin>
      <groupId>com.example</groupId>
      <artifactId>non-maven-dependencies-injector</artifactId>
      <configuration>
        <libraries>
          <library>http://www.example.com/something*.jar</library>
          <library>http://www.example.com/something-else*.jar</library>
        </libraries>
      </configuration>
    </plugin>
  <plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

这个插件将1)下载这些JAR文件,2)将它们作为依赖项添加到pom.xml.也许这个插件可以将它们存储在~/.m2/temp/...

lwe*_*ler 12

是的,您可以使用maven-install插件将其安装到本地存储库中

mvn install:install-file -Dfile=your-artifact-1.0.jar \
                         -DgroupId=org.some.group \
                         -DartifactId=your-artifact \
                         -Dversion=1.0 \
                         -Dpackaging=jar \
                         -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)

如果您希望其他团队成员能够下载此依赖项而无需安装它们,则需要设置自己的工件仓库,并使用maven-deploy-plugin以与安装它时相同的方式部署工件. .


cho*_*boy 6

是.maven-external-dependency-plugin支持这种(使用非Mavenized依赖项).

例:

<artifactItem>
    <groupId>jwbroek.cuelib</groupId>
    <artifactId>cuelib</artifactId>
    <version>${cuelib-version}</version>
    <packaging>jar</packaging>
    <downloadUrl>http://cuelib.googlecode.com/files/cuelib-${cuelib-version}.jar</downloadUrl>
    <checksum>d03b6b960b3b83a2a419e8b5f07b6ba4bd18387b</checksum>
</artifactItem>
Run Code Online (Sandbox Code Playgroud)

它还可以从zip文件中提取工件:

<artifactItem>
    <groupId>mediautil</groupId>
    <artifactId>mediautil</artifactId>
    <version>${mediautil-version}</version>
    <packaging>jar</packaging>
    <install>true</install>
    <force>false</force>
    <downloadUrl>http://downloads.sourceforge.net/project/mediachest/MediaUtil/Version%201.0/mediautil-1.zip</downloadUrl>
    <checksum>aa7ae51bb24a9268a8e57c6afe478c4293f84fda</checksum>
    <extractFile>mediautil-${mediautil-version}/mediautil-${mediautil-version}.jar</extractFile>
    <extractFileChecksum>e843cd55def75dce57123c79b7f36caca4841466</extractFileChecksum>
</artifactItem>
Run Code Online (Sandbox Code Playgroud)