在 https://repo.maven.apache.org/maven2 中未找到 org.jenkins-ci.plugins:plugin:pom:2.11。

12

我正在尝试编译一个作为Jenkins插件工作的Maven项目。当运行“mvn package”命令时,我得到了下面列出的错误。如何解决这个问题?

TIA

看到这个网页: https://mvnrepository.com/artifact/org.apache.maven/maven-plugin-api/3.5.0 然后移除了将Maven插件定义为“parent”的部分,改为将其作为“dependency”依赖包。

然后我开始遇到像这样的错误:"Unknown packaging: hpi @ line 12, column 13"

然后我看到了以下内容: Jenkins plug-in developing - Maven issue: Unknown packaging: hpi 它说 => “此外,根据本教程开头所示,在settings.xml文件中添加详细信息,以允许使用短名称"hpi"。”

更改settings.xml(根据链接)之后仍然会收到“Unknown packaging…”错误

然后我回到了原始的pom.xml文件。

这是pom.xml文件的内容:

POM FILE

这一次,在使用它后,似乎下载了与Jenkins相关的任何/所有jar文件(这花费了一些时间)。 "hpi"错误已经消失,但被一个新的错误所取代。

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running InjectedTest
Tests run: 18, Failures: 3, Errors: 12, Skipped: 0, Time elapsed: 60.722 sec <<< FAILURE! - in InjectedTest
edu\utah\med\ped\WaveMakerDeployer\config.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck)  Time elapsed: 0.338 sec  <<< FAILURE!
java.lang.AssertionError: <?jelly escape-by-default='true'?> is missing in file:/C:/WORK/Development/JENKINS/WaveMakerJenkinsDeployer/target/classes/edu/utah/med/ped/WaveMakerDeployer/config.jelly
        at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck.runTest(JellyTestSuiteBuilder.java:108)

edu\utah\med\ped\WaveMakerDeployer\global.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck)  Time elapsed: 0.086 sec  <<< FAILURE!
java.lang.AssertionError: <?jelly escape-by-default='true'?> is missing in file:/C:/WORK/Development/JENKINS/WaveMakerJenkinsDeployer/target/classes/edu/utah/med/ped/WaveMakerDeployer/global.jelly
        at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck.runTest(JellyTestSuiteBuilder.java:108)

index.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck)  Time elapsed: 0.019 sec  <<< FAILURE!
java.lang.AssertionError: <?jelly escape-by-default='true'?> is missing in file:/C:/WORK/Development/JENKINS/WaveMakerJenkinsDeployer/target/classes/index.jelly
        at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck.runTest(JellyTestSuiteBuilder.java:108)

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0 sec  <<< ERROR!
java.lang.Exception: No tests found matching Method index.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck) from org.junit.internal.requests.ClassRequest@450f78c9

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0 sec  <<< ERROR!
java.lang.Exception: No tests found matching Method edu\utah\med\ped\WaveMakerDeployer\config.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck) from org.junit.internal.requests.ClassRequest@4877102b

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0.001 sec  <<< ERROR!
java.lang.Exception: No tests found matching Method edu\utah\med\ped\WaveMakerDeployer\global.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck) from org.junit.internal.requests.ClassRequest@c69c38

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0.001 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0.001 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0.001 sec  <<< ERROR!
java.lang.Exception: No runnable methods

initializationError(org.junit.runner.manipulation.Filter)  Time elapsed: 0.001 sec  <<< ERROR!
java.lang.Exception: No runnable methods


Results :

Failed tests:
  JellyTestSuiteBuilder$JellyCheck.runTest:108 <?jelly escape-by-default='true'?> is missing in file:/C:/WORK/Development/JENKINS/WaveMakerJenkinsDeployer/target/classes/edu/utah/med/ped/WaveMakerDeployer/config.jelly
  JellyTestSuiteBuilder$JellyCheck.runTest:108 <?jelly escape-by-default='true'?> is missing in file:/C:/WORK/Development/JENKINS/WaveMakerJenkinsDeployer/target/classes/edu/utah/med/ped/WaveMakerDeployer/global.jelly
  JellyTestSuiteBuilder$JellyCheck.runTest:108 <?jelly escape-by-default='true'?> is missing in file:/C:/WORK/Development/JENKINS/WaveMakerJenkinsDeployer/target/classes/index.jelly
Tests in error:
org.junit.runner.manipulation.Filter.initializationError(org.junit.runner.manipulation.Filter)
  Run 1: Filter.initializationError ▒  No tests found matching Method index.jelly(org.j...
  Run 2: Filter.initializationError ▒  No tests found matching Method edu\utah\med\ped\...
  Run 3: Filter.initializationError ▒  No tests found matching Method edu\utah\med\ped\...
  Run 4: Filter.initializationError ▒  No runnable methods
  Run 5: Filter.initializationError ▒  No runnable methods
  Run 6: Filter.initializationError ▒  No runnable methods
  Run 7: Filter.initializationError ▒  No runnable methods
  Run 8: Filter.initializationError ▒  No runnable methods
  Run 9: Filter.initializationError ▒  No runnable methods
  Run 10: Filter.initializationError ▒  No runnable methods
  Run 11: Filter.initializationError ▒  No runnable methods
  Run 12: Filter.initializationError ▒  No runnable methods

问题:接下来应该去哪里?这些“默认”注入测试有多重要?

TIA

2个回答

20

开发Jenkins插件时,需要配置Maven以从repo.jenkins-ci.org中查找库。以下是一个示例~/.m2/settings.xml文件:

<settings>
  <pluginGroups>
    <pluginGroup>org.jenkins-ci.tools</pluginGroup>
  </pluginGroups>

  <profiles>
    <!-- Give access to Jenkins plugins -->
    <profile>
      <id>jenkins</id>
      <activation>
        <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default -->
      </activation>
      <repositories>
        <repository>
          <id>repo.jenkins-ci.org</id>
          <url>https://repo.jenkins-ci.org/public/</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>repo.jenkins-ci.org</id>
          <url>https://repo.jenkins-ci.org/public/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <mirrors>
    <mirror>
      <id>repo.jenkins-ci.org</id>
      <url>https://repo.jenkins-ci.org/public/</url>
      <mirrorOf>m.g.o-public</mirrorOf>
    </mirror>
  </mirrors>
</settings>

这篇文章来自https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial。请注意,如果您使用的是Nexus,则可以在那里找到与Nexus相关的备用指令。


感谢您的回复。我在这里找到了一个旧的线程:https://dev59.com/cF_Va4cB1Zd3GeqPVaz9,基本上说了和您一样的事情。我相应地更改了settings.xml文件。.java源文件似乎已经编译过了,但现在似乎运行了默认的注入测试(即使一开始没有创建JUnit测试程序)。这些默认的测试程序有多重要?尝试将此.hpi导入Jenkins是否仍然可以? - Casey Harrils
你可以使用插件来托管Jenkins实例。 - Casey Harrils
LOL - 这正是我在想的,“你可以随时启动一个测试 Jenkins 实例——也许使用 Docker——以确保你的插件不会引起问题。” 那么,如何做到这一点呢?什么是“Docker”? - Casey Harrils
此外,您是否了解这是什么意思:=> edu\utah\med\ped\WaveMakerDeployer\config.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck) 耗时: 0.338 秒 <<< 失败! java.lang.AssertionError: <?jelly escape-by-default='true'?> 在文件:/C:/WORK/Development/JENKINS/WaveMakerJenkinsDeployer/target/classes/edu/utah/med/ped/WaveMakerDeployer/config.jelly 中缺失 at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck.runTest(JellyTestSuiteBuilder.java:108) - Casey Harrils
什么是“jelly”? - Casey Harrils
显示剩余6条评论

2
除了我使用Gradle之外,burnettk的答案对我也有用,所以对我来说是这样的:
repositories {
    maven {
        url('https://repo.jenkins-ci.org/public/')
    }
}

在Maven的配置中,<pluginRepositories>子树可以被安全地省略掉,我想。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接