2015-05-18 3 views
1

Так Codehaus закрыли (в выходные дни, по-видимому): https://www.codehaus.org/отказ Maven, чтобы найти артефакт Codehaus org.codehaus: Codehaus-родитель

Теперь здесь говорится, что «Maven: Все хранилищами отражаются в Центральной, и наш Nexus размещается у Sonatype ». Если я читаю это правильно, это означает, что он должен продолжать работать (и потому, что Central является репозиторием по умолчанию, у меня даже не должно быть никаких изменений).

Но у меня возникли проблемы с проектом Maven, который используется для компиляции (до закрытия), но теперь не удается:

[INFO] Error building POM (may not be this project's POM). 

Project ID: org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 
Reason: Cannot find parent: org.codehaus:codehaus-parent for project: org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 for project org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 

Вот обрезается вниз версия моего 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> 
    <groupId>com.hp</groupId> 
    <artifactId>device-state-service</artifactId> 
    <packaging>war</packaging> 
    <version>1.0.0</version> 
    <name>device-state-service</name> 

    <properties> 
     <spring.version>3.2.0.RELEASE</spring.version> 
     <groovy-all.version>2.3.7</groovy-all.version> 
     <spock-core.version>0.7-groovy-2.0</spock-core.version> 
     <lombok.version>1.12.2</lombok.version> 
... 
    </properties> 

    <dependencies> 
... 

     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-all</artifactId> 
      <version>${groovy-all.version}</version> 
     </dependency> 
... 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>${lombok.version}</version> 
      <scope>provided</scope> 
     </dependency> 
... 
     <dependency> 
      <groupId>org.spockframework</groupId> 
      <artifactId>spock-core</artifactId> 
      <version>${spock-core.version}</version> 
      <scope>test</scope> 
     </dependency> 
... 
     <dependency> 
      <groupId>org.codehaus.groovy.modules.http-builder</groupId> 
      <artifactId>http-builder</artifactId> 
      <version>0.7</version> 
      <scope>test</scope> 
     </dependency> 
... 
    </dependencies> 

    <build> 
     <finalName>dss</finalName> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
      </resource> 
     </resources> 
     <testResources> 
      <testResource> 
       <directory>src/test/resources</directory> 
      </testResource> 
     </testResources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <encoding>UTF-8</encoding> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <compilerId>groovy-eclipse-compiler</compilerId> 
        <verbose>false</verbose> 
        <compilerArguments> 
         <javaAgentClass>lombok.core.Agent</javaAgentClass> 
        </compilerArguments> 
        <fork>true</fork> 
        <source>1.6</source> 
        <target>1.6</target> 
        <encoding>UTF-8</encoding> 
       </configuration> 
       <dependencies> 
        <dependency> 
         <groupId>org.codehaus.groovy</groupId> 
         <artifactId>groovy-eclipse-compiler</artifactId> 
         <version>2.9.1-01</version> 
        </dependency> 
        <dependency> 
         <groupId>org.codehaus.groovy</groupId> 
         <artifactId>groovy-eclipse-batch</artifactId> 
         <version>2.3.7-01</version> 
        </dependency> 
        <dependency> 
         <groupId>org.projectlombok</groupId> 
         <artifactId>lombok</artifactId> 
         <version>${lombok.version}</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
... 
     </plugins> 
    </build>  
     <profiles> 
     <profile> 
      <id>dss</id> 
      <activation> 
       <activeByDefault>false</activeByDefault> 
       <property> 
        <name>deliverable</name> 
        <value>dss</value> 
       </property> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>rpm-maven-plugin</artifactId> 
         <version>2.1-alpha-1</version> 
         <executions> 
          <execution> 
           <goals> 
            <goal>rpm</goal> 
           </goals> 
          </execution> 
         </executions> 
         <configuration> 
          ... 
          <name>${deliverable}</name> 
          <projversion>${pom.version}</projversion> 
          <release>${BUILD_NUMBER}</release> 
          <description>Search: RPM package</description> 
          <mappings> 
           <mapping> 
            <directory>${tomcatInstallationDir}</directory> 
            <filemode>755</filemode> 
            <username>tomcat</username> 
            <groupname>tomcat</groupname> 
            <sources> 
             <source> 
              <location>../Tomcat/</location> 
             </source> 
            </sources> 
           </mapping> 
           <mapping> 
            <directory>${tomcatInstallationDir}/webapps</directory> 
            <filemode>755</filemode> 
            <username>tomcat</username> 
            <groupname>tomcat</groupname> 
            <sources> 
             <source> 
              <location>target/${deliverable}.war 
              </location> 
              <destination>${deliverable}.war</destination> 
             </source> 
            </sources> 
           </mapping> 
          </mappings> 
          <requires> 
           <require>palm-jre &gt;= 1.6.0_27-fcs</require> 
          </requires> 
          <prefix>${tomcatInstallationDir}</prefix> 
          <preinstallScriptlet> 
           <scriptFile>../PlatformEngine/rpm_scripts/pre_install.sh</scriptFile> 
           <fileEncoding>utf-8</fileEncoding> 
          </preinstallScriptlet> 
          <postinstallScriptlet> 
           <scriptFile>../PlatformEngine/rpm_scripts/post_install.sh</scriptFile> 
           <fileEncoding>utf-8</fileEncoding> 
          </postinstallScriptlet> 
          <preremoveScriptlet> 
           <scriptFile>../PlatformEngine/rpm_scripts/pre_uninstall.sh</scriptFile> 
           <fileEncoding>utf-8</fileEncoding> 
          </preremoveScriptlet> 
          <postremoveScriptlet> 
           <scriptFile>../PlatformEngine/rpm_scripts/post_uninstall.sh</scriptFile> 
           <fileEncoding>utf-8</fileEncoding> 
          </postremoveScriptlet> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 
</project> 

Теперь, в моем каталоге .m2, я нахожу для проекта groovy-all pom/sha1 и файл jar. Но для groovy-eclipse-compiler я вижу pom/sha1, , но не файл jar.

Я что-то не так? Что-то в самой миграции Кодекса стало как-то прикручено? Или (хуже) и то, и другое?

+0

Что вы подразумеваете под: 'и наш Nexus находится у Sonatype'? – khmarbaise

+0

Какую версию Maven вы используете? – khmarbaise

+0

Я не уверен, что «и наш Nexus находится у Sonatype» означает, что я цитировал страницу завершения кода. Версия Maven - 2.2.1. Я думаю, что я нахожу ошибку в Maven, которая может быть исправлена ​​в более новой версии (где она обрабатывает HTML-коды не-200 с документами ошибок, как если бы они были действительным содержимым файла), но я не может обновиться. –

ответ

1

Артефакты maven находятся в центре уже давно, нет миграции, которая могла бы быть испорчена для них.

Поскольку я не эксперт по maven, я могу дать вам только то, что я считаю причиной. Глядя на ПОМ для версии 2.9.1-01 в groovy-eclipse-compiler я вижу

<repositories> 
    <repository> 
     <id>codehaus.org</id> 
     <url>http://repository.codehaus.org</url> 
    </repository> 
</repositories> 

анс мое предположение, что это приведет к Maven, чтобы посмотреть в этом хранилище, которое не существует больше. Если это так, то моим предложением о решении было бы вручную установить артефакты (все они на центральном уровне) или использовать другой инструмент, например, gradle (хотя это может быть не для вас) для выполнения сборки.

EDIT: Мне сказали, что вы могли бы изменить settings.xml исправить конфигурации репозитория с рисунком, как это:

<repositories> 
    <repository> 
     <id>codehaus.org</id> 
     <url>http://nexus.codehaus.org/<some suburl></url> 
    </repository> 
</repositories> 

Использование http://mvnrepository.com/artifact, например, может затем работать, но я не проверили это.

+0

Я видел это, но я не думаю, что это возможно. Я вручную добавил в раздел «репозитории» из другого pom, который у меня есть, и попытался разрешить зависимость от этих других репозиториев. Таким образом, раздел «репозиторий» в pom.xml артефакта кажется аддитивным (другими словами, «смотреть в этом репозитории в дополнение к любым другим, определенным в реальном pom.xml»). –

+0

На самом деле это может быть причиной проблемы. Я вижу в журналах, которые пытаются получить артефакт. Если я скручиваю один и тот же URL-адрес, я возвращаю страницу с переадресацией 302; Maven, кажется, не замечает, что это ошибка, думает, что она повреждена, а затем говорит, что не может найти зависимость. –

+0

Как вы это подтвердили? – blackdrag

0

Артефакт вы ссылаетесь на:

org.codehaus.groovy:groovy-eclipse-compiler:maven-plugin:2.9.1-01 

, если это не найдены вашей сборки, чем просто ваша конфигурация не так. Проблемы с сетью/прокси и т. Д. (См. Ваши настройки.xml). Вы можете выполнить поиск этого артефакта в центральном центре Maven через: http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.codehaus.groovy%22%20AND%20a%3A%22groovy-eclipse-compiler%22

Помимо этого, добавление дополнительных репозиториев не помогает. Кроме того, добавление значений по умолчанию в maven pom выглядит так:

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
    </resource> 
    </resources> 
    <testResources> 
    <testResource> 
     <directory>src/test/resources</directory> 
    </testResource> 
    </testResources> 

также не имеет смысла, поскольку они являются значениями по умолчанию.Что я споткнулся, а в том, что вы определяете такие вещи, как кодировка:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
    <encoding>UTF-8</encoding> 
    </configuration> 
</plugin> 

Сначала это хорошо, чтобы определить версию плагин, как это (но вы должны использовать uptodate versions), но вы не должны определять кодировку в каждый плагин. Для таких целей существует свойство:

<project> 
    ... 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    ... 
</project> 

с помощью выше, вы не должны дать кодировку для каждого плагина, вызывают плагины как maven-resources-plugin, maven-compiler-plugin и т.д. определяют по умолчанию.

Слово о codehaus migration. Это означает, что только сервисы, которые они предлагают разработчикам, закрываются, но не контент, который уже является частью Maven.

Я бы рекомендовал установить диспетчер хранилища в вашей собственной инфраструктуре.

Смежные вопросы