2012-11-21 8 views
11

के साथ एक बच्चे के पोम से अभिभावक पोम को संदर्भित करने का प्रयास करते समय आर्टिफैक्ट को स्थानांतरित नहीं किया जा सका" मैं मैवेन के लिए एक ट्यूटोरियल का अनुसरण कर रहा हूं। मेरे अंदर कुछ मॉड्यूल के साथ एक बहुत ही सरल परियोजना है। मॉड्यूल पोम पर मैं मुख्य proyect pom संस्करण और समूह को $ {parent.groupid} और $ {parent.version} के माध्यम से संदर्भित करना चाहता हूं, इसलिए यदि मैं उनमें से किसी को बदलता हूं तो मुझे बच्चे के पोम्स में नीचे शिकार करने की आवश्यकता नहीं होगी और उन्हें बदलें लेकिन मुझे गैर-समाधान योग्य माता-पिता मिल रहा है: आर्टिफैक्ट त्रुटि

मैंने स्टैक ओवरफ्लो पर कई "गैर-समाधान योग्य माता-पिता POM:" प्रश्न पढ़े हैं लेकिन मैंने जो कुछ भी पढ़ा है, वह मदद नहीं कर पाया है।

tutorial_maven(dir) 
--> pom.xml(file) 
--> tutorial_maven_jar(dir) 
    --> pom.xml(file) 

मैं निम्नलिखित त्रुटि हो रही है::

मेरे निर्देशिका संरचना इस प्रकार है

Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500) 
Maven home: C:\Program Files (x86)\apache-maven-3.0.4 
Java version: 1.7.0_09, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jdk1.7.0_09\jre 
Default locale: es_EC, platform encoding: UTF-8 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" 
[INFO] Error stacktraces are turned on. 
[DEBUG] Reading global settings from C:\Program Files (x86)\apache-maven-3.0.4\conf\settings.xml 
[DEBUG] Reading user settings from C:\Users\fureta.DESARROLLO03\.m2\settings.xml 
[WARNING] Command line option -npr is deprecated and will be removed in future Maven versions. 
[DEBUG] Using local repository at C:\Users\fureta.DESARROLLO03\.m2\repository 
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 for C:\Users\fureta.DESARROLLO03\.m2\repository 
[INFO] Scanning for projects... 
[DEBUG] Using connector WagonRepositoryConnector with priority 0 for http://repo.maven.apache.org/maven2 
Downloading: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tutorial_maven-${parent.version}.pom 
[DEBUG] Writing resolution tracking file C:\Users\fureta.DESARROLLO03\.m2\repository\${parent\groupId}\tutorial_maven\${parent.version}\tutorial_maven-${parent.version}.pom.lastUpdated 
[DEBUG] Extension realms for project org.felipe:tutorial_maven:pom:1.0-SNAPSHOT: (none) 
[DEBUG] Looking up lifecyle mappings for packaging pom from ClassRealm[plexus.core, parent: null] 
[DEBUG] Extension realms for project org.felipe:tutorial_maven_webapp:war:1.0-SNAPSHOT: (none) 
[DEBUG] Looking up lifecyle mappings for packaging war from ClassRealm[plexus.core, parent: null] 
[ERROR] The build could not read 1 project -> [Help 1] 
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs: 
[WARNING] 'parent.relativePath' points at org.felipe:tutorial_maven instead of ${parent.groupId}:tutorial_maven, please verify your project structure @ line 3, column 13 
[FATAL] Non-resolvable parent POM: Could not transfer artifact ${parent.groupId}:tutorial_maven:pom:${parent.version} from/to central (http://repo.maven.apache.org/maven2): Illegal character in path at index 37: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tutorial_maven-${parent.version}.pom and 'parent.relativePath' points at wrong local POM @ line 3, column 13 

at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:363) 
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:636) 
at org.apache.maven.DefaultMaven.getProjectsForMavenReactor(DefaultMaven.java:585) 
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:234) 
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
at org.codehaus.classworlds.Launcher.main(Launcher.java:47) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
[ERROR] 
[ERROR] The project ${parent.groupId}:tutorial_maven_jar:${parent.version} (C:\Users\fureta.DESARROLLO03\IdeaProjects\tutorial_maven\tutorial_maven_jar\pom.xml) has 1 error 
[ERROR]  Non-resolvable parent POM: Could not transfer artifact ${parent.groupId}:tutorial_maven:pom:${parent.version} from/to central (http://repo.maven.apache.org/maven2): Illegal character in path at index 37: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tuto rial_maven-${parent.version}.pom and 'parent.relativePath' points at wrong local POM @ line 3, column 13 -> [Help 2] 
org.apache.maven.model.resolution.UnresolvableModelException: Could not transfer artifact ${parent.groupId}:tutorial_maven:pom:${parent.version} from/to central (http://repo.maven.apache.org/maven2): Illegal character in path at index 37: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tuto rial_maven-${parent.version}.pom 
at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:159) 
at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:813) 
at org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:664) 
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:310) 
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:232) 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:410) 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:379) 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:495) 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:379) 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:343) 
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:636) 
at org.apache.maven.DefaultMaven.getProjectsForMavenReactor(DefaultMaven.java:585) 
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:234) 
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
at org.codehaus.classworlds.Launcher.main(Launcher.java:47) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: org.sonatype.aether.resolution.ArtifactResolutionException: Could not transfer artifact ${parent.groupId}:tutorial_maven:pom:${parent.version} from/to central (http://repo.maven.apache.org/maven2): Illegal character in path at index 37: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tuto rial_maven-${parent.version}.pom 
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538) 
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216) 
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193) 
at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:286) 
at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:155) 
... 30 more 
Caused by: org.sonatype.aether.transfer.ArtifactTransferException: Could not transfer artifact ${parent.groupId}:tutorial_maven:pom:${parent.version} from/to central (http://repo.maven.apache.org/maven2): Illegal character in path at index 37: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tutorial_maven-${parent.version}.pom 
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:951) 
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:941) 
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:669) 
at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.IllegalArgumentException: Illegal character in path at index 37: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tutorial_maven-${parent.version}.pom 
at java.net.URI.create(URI.java:859) 
at org.apache.maven.wagon.providers.http.httpclient.client.methods.HttpGet.<init>(HttpGet.java:69) 
at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:778) 
at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) 
at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) 
at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) 
at  org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:601) 
... 4 more 
Caused by: java.net.URISyntaxException: Illegal character in path at index 37: http://repo.maven.apache.org/maven2/${parent/groupId}/tutorial_maven/${parent.version}/tutorial_maven-${parent.version}.pom 
at java.net.URI$Parser.fail(URI.java:2829) 
at java.net.URI$Parser.checkChars(URI.java:3002) 
at java.net.URI$Parser.parseHierarchical(URI.java:3086) 
at java.net.URI$Parser.parse(URI.java:3034) 
at java.net.URI.<init>(URI.java:595) 
at java.net.URI.create(URI.java:857) 
... 10 more 
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException 

मैं मदद 1 में दिए गए लिंक के माध्यम से पढ़ सकते हैं और 2 मदद की है, लेकिन कुछ भी नहीं पाया गया है कि मदद करता है. लॉग से मैं क्या समझ सकता हूं यह है कि मैवेन मैवेन रिपॉजिटरीज़ में मेरे मुख्य पोम की तलाश में है ...

मुझे क्या याद आ रही है?

मेरा मुख्य 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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.felipe</groupId> 
    <artifactId>tutorial_maven</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <modules> 
     <module>tutorial_maven_jar</module> 
     <module>tutorial_maven_webapp</module> 
    </modules> 
    <packaging>pom</packaging> 

    <name>tutorial_maven</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <!--<log4j.version>1.2.17</log4j.version>--> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

मेरी मॉड्यूल 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/xsd/maven-4.0.0.xsd"> 
    <parent> 
     <artifactId>tutorial_maven</artifactId> 
     <groupId>${parent.groupId}</groupId> 
     <version>${parent.version}</version> 
     <relativePath>../pom.xml</relativePath> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>tutorial_maven_jar</artifactId> 
    <packaging>jar</packaging> 

    <name>tutorial_maven_jar</name> 
    <url>http://maven.apache.org</url> 

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

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
      <!--<optional>true</optional>--> 
     </dependency> 

     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
     </dependency> 
    </dependencies> 
</project> 

सादर, फेलिप

उत्तर

5

लगता है तुम दोनों के लिए कोशिश कर रहे हैं ग्रुप के वारिस अभिभावक से, और एक विरासत समूह विरासत का उपयोग कर माता-पिता को निर्दिष्ट करें!

बच्चे पोम में, कुछ इस तरह का उपयोग करें:

<modelVersion>4.0.0</modelVersion> 

<parent> 
    <groupId>org.felipe</groupId> 
    <artifactId>tutorial_maven</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>../pom.xml</relativePath> 
</parent> 

<artifactId>tutorial_maven_jar</artifactId> 

${project.groupId} तरह का प्रयोग गुण वहाँ काम नहीं करेगा। यदि आप इस तरह से अभिभावक को निर्दिष्ट करते हैं, तो आप बच्चे के पोम में समूह आईडी और संस्करण का उत्तराधिकारी बना सकते हैं। इसलिए, आपको केवल बच्चे के पोम में artifactId निर्दिष्ट करने की आवश्यकता है।

+0

हैलो मार्टिन, इस तरह मैं मूल रूप से यह था और मैं ट्यूटोरियल के साथ पीछा कर रहा था, शायद मैं ट्यूटोरियल को याद कर रहा हूं। जो मैं देखता हूं, यदि मैं अभिभावक पोम में संस्करण बदलता हूं तो मुझे मैन्युअल रूप से बाल पोम्स पर संस्करण बदलना होगा? – Felipe

+1

हां, लेकिन आप इसे स्वचालित करने के लिए संस्करण प्लगइन का उपयोग कर सकते हैं, इसलिए आपको प्रत्येक को हाथ से संपादित करने की आवश्यकता नहीं है। यदि आप शीर्ष स्तर के पोम से 'mvn संस्करण चलाते हैं: set -DnewVersion = x.y.z' सेट करें, तो यह इस संस्करण को सभी उप-मॉड्यूल पर शीर्ष-स्तरीय पोम पर सेट करेगा। अधिक जानकारी के लिए देखें: http://mojo.codehaus.org/versions-maven-plugin/set-mojo.html –

+0

बढ़िया, बहुत धन्यवाद @ मार्टिन एलिस। – Felipe

2

मुझे एक ही समस्या थी। <modules> सूचीबद्ध के साथ मूल फ़ोल्डर में pom.xml जोड़कर फिक्स्ड।

2

मुझे लगता है कि प्रश्न पहले से ही उत्तर दिया गया है। यदि उपर्युक्त समाधान समस्या को हल करने में मदद नहीं करता है तो समस्या को हल करने के लिए नीचे उपयोग कर सकते हैं।

समस्या तब होती है जब कभी-कभी आपकी मेवेन उपयोगकर्ता सेटिंग्स सही सेटिंग्स.xml फ़ाइल को प्रतिबिंबित नहीं कर रही है।

सेटिंग्स फ़ाइल को अपडेट करने के लिए विंडोज> प्राथमिकताएं> मैवेन> उपयोगकर्ता सेटिंग्स पर जाएं और सेटिंग्स को सही स्थान पर सेटिंग्स.एक्सएमएल अपडेट करें।

एक बार यह परियोजना फिर से बनाने के बाद, इन मुद्दों को हल करना चाहिए। धन्यवाद।

संबंधित मुद्दे