Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jenkens插件(使用Maven构建)和外部JAR_Java_Maven_Jar_Jenkins - Fatal编程技术网

Java Jenkens插件(使用Maven构建)和外部JAR

Java Jenkens插件(使用Maven构建)和外部JAR,java,maven,jar,jenkins,Java,Maven,Jar,Jenkins,我正在尝试编写一个简单的Jenkins插件,它需要一个专有的外部库myAwesomePackage.jar。在stackoverflow上经常讨论将外部JAR包含到maven项目中,这里的解决方案似乎是解决这一问题的简洁方法 所以我在我的罐子里加了 mvn install:install-file \ -Dfile=./lib/path_to_jar/lib/myAwesomePackage.jar \ -DlocalRepositoryPath=my_repo \ -Dcreate

我正在尝试编写一个简单的Jenkins插件,它需要一个专有的外部库myAwesomePackage.jar。在stackoverflow上经常讨论将外部JAR包含到maven项目中,这里的解决方案似乎是解决这一问题的简洁方法

所以我在我的罐子里加了

mvn install:install-file \
  -Dfile=./lib/path_to_jar/lib/myAwesomePackage.jar \
  -DlocalRepositoryPath=my_repo \
  -DcreateChecksum=true \
  -DgroupId=myAwesomePackage \
  -DartifactId=myAwesomePackage \
  -Dversion=1 \
  -Dpackaging=jar \
  -DgeneratePom=true 
并修改了我的pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.jenkins-ci.plugins</groupId>
    <artifactId>plugin</artifactId>
    <version>1.532.3</version>
  </parent>

  <groupId>org.jenkins-ci.plugins</groupId>
  <artifactId>myPlugin</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>hpi</packaging>

  <licenses>
   <license>
     <name> ... license name ... /name>
     <url> ... license url ... </url>
   </license>
  </licenses>


  <repositories>
   <repository>
    <id>repo.jenkins-ci.org</id>
    <url>http://repo.jenkins-ci.org/public/</url>
   </repository>
   <repository>
    <id>my_repo</id>
    <url>file://${project.basedir}/my_repo</url>
   </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </pluginRepository>
  </pluginRepositories>


  <dependencies>
    <dependency>
     <groupId>org.glassfish</groupId> 
     <artifactId>javax.xml.rpc</artifactId>
     <version>3.0-Prelude-Embedded-m2</version>
   </dependency>
     <dependency>
     <groupId>myAwesomePackage</groupId>
     <artifactId>myAwesomePackage</artifactId>
     <version>1</version>
   </dependency>
  </dependencies>

</project>
所以我的问题是:
在jenkins插件中包含专有jar的正确方法是什么?该插件是用maven构建的?

因为您已经在
pom.xml
中手动指定了
存储库
,它将在这些存储库中查找无法从中解析的
myAwesomePackage:myAwesomePackage:jar:1
工件


下的
pom.xml
中添加此工件可用的存储库。我的问题中描述的过程有效! 该错误是由于
-Dfile=..
选项中的键入错误引起的,但maven没有给出任何错误,我认为该操作是成功的。
正如Jigar Joshi在评论中所描述的那样,
mvn clean install-X
有助于调试此类问题。

我想我是用我的${project.basedir}/myu repo文件完成的。第二个最后的下载日志说,它正在使用它,最后一个下载日志说,maven也在其他地方搜索它,但是为什么?你可以手动将这个jar安装到本地缓存中,让maven不用担心它的远程解析吗?(或者设置一个合适的nexus存储库并在那里管理您的工件)老实说,我是maven的初学者。。。。本地缓存是什么意思?有没有一种方法可以直接将jar添加到java类路径?myAwesomePackage:myAwesomePackage:1的真正价值是什么?它是一个专有的jar文件
.....
Downloaded: http://repo.jenkins-ci.org/public/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar (96 KB at 79.2 KB/sec)
Downloaded: http://repo.jenkins-ci.org/public/xalan/xalan/2.7.1/xalan-2.7.1.jar (3102 KB at 150.7 KB/sec)
Downloaded: http://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-war/1.532.3/jenkins-war-1.532.3-war-for-test.jar (62097 KB at 467.9 KB/sec)
Downloading: file:///home/path_to/my_repo/myAwesomePackage/myAwesomePackage/1/myAwesomePackage-1.jar 
Downloading: http://repo.maven.apache.org/maven2/myAwesomePackage/myAwesomePackage/1/myAwesomePackage-1.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12:17.009s
[INFO] Finished at: Fri Jul 11 01:40:32 EDT 2014
[INFO] Final Memory: 12M/86M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project myPlugin: Could not resolve dependencies for project org.jenkins-ci.plugins:myPlugin:hpi:1.0-SNAPSHOT: Could not find artifact myAwesomePackage:myAwesomePackage:jar:1 in repo.jenkins-ci.org (http://repo.jenkins-ci.org/public/) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException