2015-04-08 14 views
12

Sto convertendo uno dei miei progetti Maven in gradle. Per fare questo sto runngin seguente comando in cui si trovaconvert maven pom a gradle build

gradle init --type pom 

pom.xml Ma mi sta dando java.lang.NullPointerException

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':init'. 
> Could not convert Maven POM /Users/myname/Documents/oAuth+Angular/workspace/feature-oauth_and_security_69/ui/pom.xml to a Gradle build. 
> Unable to create Maven project model using POM /Users/myname/Documents/oAuth+Angular/workspace/feature-oauth_and_security_69/ui/pom.xml. 
    > java.lang.NullPointerException (no error message) 

c'è qualcosa da eseguire con init o qualsiasi altra cosa io sono mancante?

Questo è il mio pom.xml:

<?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>org.test</groupId> 
<artifactId>ui</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>ui</name> 
<description>Demo project for Spring Boot</description> 

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

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-parent</artifactId> 
      <version>1.0.1.BUILD-SNAPSHOT</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-zuul</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-security</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security.oauth</groupId> 
     <artifactId>spring-security-oauth2</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-jwt</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
</dependencies> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <wro4j.version>1.7.6</wro4j.version> 
    <java.version>1.7</java.version> 
</properties> 

<build> 
    <resources> 
     <resource> 
      <directory>${project.basedir}/src/main/resources</directory> 
     </resource> 
     <resource> 
      <directory>${project.build.directory}/generated-resources</directory> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <artifactId>maven-resources-plugin</artifactId> 
      <executions> 
       <execution> 
        <!-- Serves *only* to filter the wro.xml so it can get an absolute 
         path for the project --> 
        <id>copy-resources</id> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${basedir}/target/wro</outputDirectory> 
         <resources> 
          <resource> 
           <directory>src/main/wro</directory> 
           <filtering>true</filtering> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>ro.isdc.wro4j</groupId> 
      <artifactId>wro4j-maven-plugin</artifactId> 
      <version>${wro4j.version}</version> 
      <executions> 
       <execution> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory> 
       <cssDestinationFolder>${project.build.directory}/generated-resources/static/css</cssDestinationFolder> 
       <jsDestinationFolder>${project.build.directory}/generated-resources/static/js</jsDestinationFolder> 
       <wroFile>${project.build.directory}/wro/wro.xml</wroFile> 
       <extraConfigFile>${basedir}/src/main/wro/wro.properties</extraConfigFile> 
       <contextFolder>${basedir}/src/main/wro</contextFolder> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.webjars</groupId> 
        <artifactId>jquery</artifactId> 
        <version>2.1.1</version> 
       </dependency> 
       <dependency> 
        <groupId>org.webjars</groupId> 
        <artifactId>angularjs</artifactId> 
        <version>1.3.8</version> 
       </dependency> 
       <dependency> 
        <groupId>org.webjars</groupId> 
        <artifactId>bootstrap</artifactId> 
        <version>3.2.0</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
    </plugins> 
</build> 

<repositories> 
    <repository> 
     <id>spring-snapshots</id> 
     <name>Spring Snapshots</name> 
     <url>http://repo.spring.io/libs-snapshot-local</url> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 
    <repository> 
     <id>spring-milestones</id> 
     <name>Spring Milestones</name> 
     <url>http://repo.spring.io/libs-milestone-local</url> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 
    <repository> 
     <id>spring-releases</id> 
     <name>Spring Releases</name> 
     <url>http://repo.spring.io/libs-release-local</url> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 
</repositories> 

+1

è possibile per voi di inviare il file POM? –

+0

Provalo ancora con un --debug gradle init --type pom --debug – questionare

+0

controllando con esso –

risposta

4

Non so perché, ma lavorato dopo aver commentato i "repository" Grazie per tutto l'aiuto

+0

La rimozione dei repository non funziona, come ho appena provato. Né la soluzione genitore relativoPath menzionata. Considerare 1- questa è una funzione di incubazione, 2 - specifica le versioni degli strumenti che stai utilizzando tramite 'gradle -v' –

+0

Rimuovere i repository non funziona neanche per me. –

3

C'è un problema con <parent> elemento, esattamente con <relativePath/> elemento interno in blocco:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.2.2.RELEASE</version> 
    <relativePath /> 
</parent> 

Quando si rimuove il <relativePath/> elemento o impostarlo correttamente, il gradle inizializzerà il progetto.

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.2.2.RELEASE</version> 
    <!-- <relativePath>../parent/pom.xml</relativePath> --> 
</parent> 

Il problema era con l'elemento relativePath impostato in modo errato, che non punta al file POM genitore come dovrebbe.

+0

stesso problema con esso –

+0

Non ho il ma ancora non riuscito. Ho provato a eliminare ma non aiuta. –

2

mi sento un modo più pulito per convertire un progetto Maven con modulo genitore di uno Gradle è seguendo i passaggi di seguito:

  • Ottenere un pom.xml efficace per il progetto di pom_eff.xml:
    mvn aiuto: efficacia-pom -Doutput = pom_eff.xml
  • tag Rimuovere genitore da pom_eff.xml
  • prendere il backup di il pom.xml originale e rinomina pom_eff.xml in pom.xml.
  • fare init Gradle

In questo modo il motore Gradle ottiene una versione appiattita del pom.xml che è molto più semplice da decodificare per il sistema Gradle.

+0

Questo funziona per me, ma ho bisogno di rimuovere il tag nel pom_eff.xml. –

+0

Non fare nulla con le dipendenze nel mio caso –

0

Non solo il task di avvio di Gradle consente di creare un nuovo progetto di scheletro, ma convertirà automaticamente uno esistente da Maven a Gradle. Tutto quello che dovete fare è eseguire il comando

$ gradle init

Problemi correlati