2014-10-17 2 views
1

Эта ошибка Maven полностью меня отключила, поэтому я мог бы воспользоваться некоторой помощью. У меня есть проект, который объявляющий в-проекта репо, как это:In-project Maven Repository, вызывающий ошибки зависимостей

<parent> 
    <groupId>ca.gc.agr.common</groupId> 
    <artifactId>drydock-parent</artifactId> 
    <relativePath>../DryDockPOM/pom.xml</relativePath> 
</parent> 
<artifactId>CognosReportService</artifactId> 
<packaging>jar</packaging> 
<version>2.0</version> 

<name>CognosReportService</name> 

<!-- In Project repository --> 
<repositories> 
    <repository> 
     <id>in-project</id> 
     <name>In Project Repo</name> 
     <url>file://${project.basedir}/libs</url> 
    </repository> 
</repositories> 

<dependencies> 
    ... stuff ... 

    <dependency> 
     <groupId>cognos-sdk</groupId> 
     <artifactId>cognos-client</artifactId> 
     <version>8.4.1</version> 
    </dependency> 

    <dependency> 
     <groupId>cognos-sdk</groupId> 
     <artifactId>cognos-axis</artifactId> 
     <version>8.4.1</version> 
    </dependency> 

    ... stuff ... 

</dependencies> 

Там есть еще один проект, который использует этот вроде так:

<parent> 
    <groupId>ca.gc.agr.common</groupId> 
    <artifactId>common-web-parent</artifactId> 
    <relativePath>../DryDockWebPOM/pom.xml</relativePath> 
</parent> 
<artifactId>CognosReportWeb</artifactId> 
<packaging>jar</packaging> 
<version>2.0</version> 

<name>CognosReportWeb</name> 

<dependencies> 

    ... stuff .... 

    <dependency> 
     <groupId>ca.gc.agr.common</groupId> 
     <artifactId>CognosReportService</artifactId>  
     <version>[1.0,)</version> 
    </dependency> 

    ... stuff .... 

</dependencies> 

Если я до родительского проекта и сделать a mvn install оттуда, все работает. Однако, если я пытаюсь построить CognosReportWeb сам по себе, я получаю это:

[ERROR] Failed to execute goal on project CognosReportWeb: Could not resolve dependencies for project ca.gc.agr.common:CognosReportWeb:jar:2.0: 
Failed to collect dependencies for [ca.gc.agr.common:CognosReportService:jar:[1.0,) (compile), 
ca.gc.agr.common:CommonWebJar:jar:[1.0,) (compile), 
org.apache.tomcat:tomcat-servlet-api:jar:7.0.16 (provided), 
javax.servlet.jsp:jsp-api:jar:2.2 (provided), 
javax.el:el-api:jar:2.2 (provided), 
org.glassfish.web:el-impl:jar:2.2 (provided), 
com.sun.faces:jsf-api:jar:2.1.7 (compile), 
com.sun.faces:jsf-impl:jar:2.1.7 (compile), 
org.apache.myfaces.tomahawk:tomahawk20:jar:1.1.10 (compile), 
org.richfaces:richfaces-bom:pom:4.2.0.Final (compile), 
org.richfaces.ui:richfaces-components-ui:jar:4.2.0.Final (compile), 
org.richfaces.core:richfaces-core-impl:jar:4.2.0.Final (compile), 
org.primefaces:primefaces:jar:5.0 (compile), 
org.springframework:spring-web:jar:4.0.0.RELEASE (compile), 
com.cybozu.labs:langdetect:jar:1.1-20120112 (compile), 
org.apache.myfaces.test:myfaces-test20:jar:1.0.7 (test), 
org.aspectj:aspectjweaver:jar:1.7.4 (compile), 
org.springframework:spring-context:jar:4.0.0.RELEASE (compile), 
org.springframework:spring-aspects:jar:4.0.0.RELEASE (compile), 
org.springframework:spring-tx:jar:4.0.0.RELEASE (compile), 
org.springframework:spring-test:jar:4.0.0.RELEASE (compile), 
org.springframework:spring-orm:jar:4.0.0.RELEASE (compile), 
org.springframework:spring-oxm:jar:4.0.0.RELEASE (compile), 
org.springframework:spring-jdbc:jar:4.0.0.RELEASE (compile), 
org.hibernate:hibernate-core:jar:4.1.7.Final (compile), 
commons-io:commons-io:jar:1.3.2 (compile), 
commons-lang:commons-lang:jar:2.4 (compile), 
commons-beanutils:commons-beanutils:jar:1.8.3 (compile), 
commons-validator:commons-validator:jar:1.3.1 (compile), 
log4j:log4j:jar:1.2.17 (compile), 
org.slf4j:slf4j-log4j12:jar:1.7.6 (compile), 
junit:junit:jar:4.11 (compile), 
junit-addons:junit-addons:jar:1.4 (compile), 
com.googlecode.log4jdbc:log4jdbc:jar:1.2 (compile), 
org.reflections:reflections:jar:0.9.9-RC1 (compile), 
oro:oro:jar:2.0.8 (compile), 
dbunit:dbunit:jar:2.1 (compile), 
com.h2database:h2:jar:1.3.175 (compile)]: 

Failed to read artifact descriptor for org.aspectj:aspectjweaver:jar:1.8.0.M1: 
    Could not transfer artifact org.aspectj:aspectjweaver:pom:1.8.0.M1 from/to in-project (file://${project.basedir}/libs): 
     Repository path /libs does not exist, and cannot be created. -> [Help 1] 

На первый взгляд, кажется, что есть проблема с org.aspectj:aspectjweaver:pom:1.8.0.M1, но я, если я закомментировать свою собственную в-проекте репо в CognosReportService (и переустановить), внезапно CognosReportWeb начинает работать.

Я действительно в тупике. Я делаю что-то неправильно?

Любые идеи были бы оценены!

ответ

0

Re «Если я прокомментирую свое собственное репроекторство в проекте в CognosReportService (и переустановить), неожиданно CognosReportWeb начнет работать».

Используется местное Maven repo (по умолчанию ~/.m2/repository или согласно вашему settings.xmls), и это, как известно, работает надежно. Итак, это не неожиданно работает, работает по дизайну. ;-)

Сообщение в конце дает критический намек. Есть org.aspectj:aspectjweaver:pom:1.8.0.M1 в file://${project.basedir}/libs?

В чем причина использования этого дополнительного репозитория?

+0

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

+0

@ValBlant [Почему это плохая идея для передачи Java-файлов jar в репозиторий] (http://stackoverflow.com/questions/4649015/java-jar-files-into-a-repository-cvs-svn). –

0

Если зависимость недоступна в Maven Central, и вы хотите убедиться, что любой, кто проверяет ваш код, сможет создать ваш источник без дополнительной настройки или установки jar, а затем найти альтернативный публичный репозиторий, зависимость.

и добавьте его в свой проект точно так же, как это было сделано (за исключением использования локального репозитория на основе файлов).

<repositories> 
    <repository> 
     <id>opencastproject</id> 
     <url>http://repository.opencastproject.org/nexus/content/repositories/public/</url> 
    </repository> 
</repositories> 

Но в вашем случае, аналогичные или более новые версии org.aspectj:aspectjweaver Lib доступна в Maven Central - http://central.maven.org/maven2/org/aspectj/aspectjweaver/, так что, вероятно, вы можете просто использовать

<dependency> 
    <groupId>org.aspectj</groupId> 
    <artifactId>aspectjweaver</artifactId> 
    <version>1.8.2</version> 
</dependency> 

вместо этого?

+0

Я не думаю, что проблема имеет какое-то отношение к aspectjweaver. Проблемную версию запрашивает какой-то другой pom в Hibernate или Spring, поэтому я всегда вижу это предупреждение, но сборка преуспевает.Ящики, которые я пытался разместить в репо-проекте, недоступны в любом публичном репо, b/c они предназначены для очень неясной, запатентованной системы. Я работал над проблемой, установив Nexus в нашей организации и разместив там фирменные банки, поэтому теперь работает сборка. Ошибки, которые я получал с репо в проекте, по-прежнему кажутся ошибкой. –

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