2017-06-18 29 views
2

我已经创建了一个包含一些我想用于我的项目的常见依赖项的pom文件。该pom有一个类型的包装袋。我已经将它推送到我的nexus存储库:https://oss.sonatype.org/service/local/repositories/snapshots/content/com/gwidgets/gwt-spring-boot-starter/1.0-SNAPSHOT/gwt-spring-boot-starter-1.0-20170526.141419-3.pom,现在我正试图将其导入到其他项目中,但依赖项未由maven解决。以下是完整的POM:无法将pom依赖项导入到另一个

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 


    <name>demo</name> 
    <description>Demo project</description> 

     <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.3.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 


    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.gwidgets</groupId> 
      <artifactId>gwt-spring-boot-starter</artifactId> 
      <version>1.0-SNAPSHOT</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

    <dependencies> 
     <dependency> 
     <groupId>com.gwidgets</groupId> 
     <artifactId>gwt-spring-boot-starter</artifactId> 
     <version>1.0-SNAPSHOT</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 

     <repositories> 
     <repository> 
      <id>snapshots</id> 
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url> 
      <releases> 
       <enabled>false</enabled> 
      </releases> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>3.0.0</version> 
       <configuration> 
        <webResources> 
         <resource> 
          <directory>src/main/webapp</directory> 
         </resource> 
        </webResources> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
       <executions> 
        <execution> 
         <id>war</id> 
         <phase>compile</phase> 
         <goals> 
          <goal>war</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

我曾尝试加入dependencyManagement部分,没有任何的运气。我错过了什么吗? maven不允许吗?任何帮助都会很棒。以下是我在尝试执行GWT编译时遇到的错误:

package com.google.gwt.core.client does not exist 
cannot find symbol: class EntryPoint 

这只是表示依赖关系不存在。

+0

对不起!有些人试图关闭它,因为他说这没有什么可做的maven,这是一个纯粹的maven问题。他认为他比这里的每个人都更聪明。我注意到你的答案。如果它有效,比你可以重新发布它,我会将它标记为已接受的答案。 –

+0

导入范围只能在'dependencyManagement'中使用。 – khmarbaise

+0

我想要实现的就是拥有一堆依赖关系并将它们收集到一个pom中,然后将该pom导入多个项目中,这些项目将以可传递的方式导入其依赖项,这是否可以使用Maven实现? –

回答

0

回答我自己的问题:在做了一些研究之后,似乎无法导入pom,并且除非使用父pom,否则通过Maven传递解决它的依赖关系。在我目前的设置中,这些项目已经有了一个父pom,所以唯一的解决方案是将所有的依赖关系复制到目标pom中。在未来的Maven中使用这个功能会很好。

相关问题