2010-12-12 6 views
1

J'ai essayé de construire un projet. Ça a échoué. J'ai fait les changements corrects et j'ai essayé de le reconstruire. Je dégage l'erreur suivante:Maven question de nettoyage

Embedded error: Directory simple already exists - please run from a clean directory

 

[email protected]:~/Documents/Maven/mavenbook-examples-1-SNAPSHOT/ch03-simple$ mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook -e 
+ Error stacktraces are turned on. 
[INFO] Scanning for projects... 
[INFO] Reactor build order: 
[INFO] Chapter 3 Parent Project 
[INFO] Chapter 3 Simple Project Example 
[INFO] Searching repository for plugin with prefix: 'archetype'. 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Chapter 3 Parent Project 
[INFO] task-segment: [archetype:create] (aggregator-style) 
[INFO] ------------------------------------------------------------------------ 
[INFO] [archetype:create {execution: default-cli}] 
[WARNING] This goal is deprecated. Please use mvn archetype:generate instead 
[INFO] ---------------------------------------------------------------------------- 
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:RELEASE 
[INFO] ---------------------------------------------------------------------------- 
[INFO] Parameter: groupId, Value: org.sonatype.mavenbook.ch03 
[INFO] Parameter: packageName, Value: org.sonatype.mavenbook 
[INFO] Parameter: package, Value: org.sonatype.mavenbook 
[INFO] Parameter: artifactId, Value: simple 
[INFO] Parameter: basedir, Value: /home/dan/Documents/Maven/mavenbook-examples-1-SNAPSHOT/ch03-simple 
[INFO] Parameter: version, Value: 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error creating from archetype 

Embedded error: Directory simple already exists - please run from a clean directory 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.lifecycle.LifecycleExecutionException: Error creating from archetype 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    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:616) 
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Error creating from archetype 
    at org.apache.maven.archetype.mojos.MavenArchetypeMojo.execute(MavenArchetypeMojo.java:243) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    ... 17 more 
Caused by: org.apache.maven.archetype.old.ArchetypeTemplateProcessingException: Directory simple already exists - please run from a clean directory 
    at org.apache.maven.archetype.old.DefaultOldArchetype.createArchetype(DefaultOldArchetype.java:251) 
    at org.apache.maven.archetype.old.DefaultOldArchetype.createArchetype(DefaultOldArchetype.java:117) 
    at org.apache.maven.archetype.mojos.MavenArchetypeMojo.execute(MavenArchetypeMojo.java:227) 
    ... 19 more 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 7 seconds 
[INFO] Finished at: Sun Dec 12 18:53:08 EST 2010 
[INFO] Final Memory: 10M/26M 
[INFO] ------------------------------------------------------------------------ 
 

Cela me porte à croire que je dois nettoyer le répertoire ou quelque chose. J'appelle mvn clean mais cela ne résout pas le problème. Je suis sûr que c'est une question très simple, mais je suis juste en train d'apprendre. Aucune suggestion?

Parent:

<pre> 
    <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> 
    <artifactId>examples</artifactId> 
    <groupId>org.sonatype.mavenbook</groupId> 
    <version>1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>Maven: The Definitive Guide Example Code</name> 
    <description>Example Code for Maven: The Definitive Guide</description> 

    <url>http://sonatype.com/book</url> 

    <modules> 
    <module>ch03-simple</module> 
    <module>ch04-custom</module> 
    <module>ch05-simple-web</module> 
    <module>ch06-multi</module> 
    <module>ch07-multi-spring</module> 
    <module>ch08-optimize</module> 
    <module>ch09-pom</module> 
    <module>ch10-lifecycle</module> 
    <module>ch11-profile</module> 
    <module>ch12-assembly</module> 
    <module>ch13-properties</module> 
    <module>ch15-sitegen</module> 
    <module>ch17-writing-plugins</module> 
    <module>ch18-alternate-plugins</module> 
    </modules> 

    <build> 
    <finalName>mavenbook-examples-${project.version}</finalName> 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
      <descriptorRefs> 
      <descriptorRef>project</descriptorRef> 
      </descriptorRefs> 
     </configuration> 
     <executions> 
      <execution> 
      <id>examples</id> 
      <phase>package</phase> 
      <goals> 
       <goal>attached</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <profiles> 
     <profile> 
     <id>publish</id> 
     <distributionManagement> 
     <site> 
      <id>sonatype-site</id> 
      <name>Sonatype Book Examples</name> 
      <url>file:///var/www/domains/sonatype.com/www/htdocs/book/book-examples/</url> 
     </site> 
     </distributionManagement> 
     <properties> 
      <sonatype.site>file:///var/www/domains/sonatype.com/www/htdocs/</sonatype.site> 
     </properties> 
     </profile> 
     <profile> 
     <id>stage</id> 
     <distributionManagement> 
     <site> 
      <id>sonatype-site</id> 
      <name>Sonatype Book Examples</name> 
      <url>file:///var/www/domains/sonatype.com/www/htdocs/book-stage/book-examples/</url> 
     </site> 
     </distributionManagement> 
     </profile> 
    </profiles> 

    <reporting> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-project-info-reports-plugin</artifactId> 
     <version>2.0.1</version> 
     </plugin> 
    </plugins> 
    </reporting> 

    <repositories> 
    <repository> 
     <id>sonatype-forge</id> 
     <name>Sonatype Forge</name> 
     <url>http://repository.sonatype.org/content/groups/public</url> 
     <snapshots> 
     <enabled>false</enabled> 
     </snapshots> 
    </repository> 
     <repository> 
      <id>Codehaus Snapshots</id> 
      <url>http://snapshots.repository.codehaus.org</url> 
      <snapshots> 
      <enabled>true</enabled> 
      </snapshots> 
      <releases> 
      <enabled>false</enabled> 
      </releases> 
     </repository> 
    <repository> 
     <id>Central</id> 
     <url>http://repo1.maven.org/maven2</url> 
     <snapshots> 
     <enabled>false</enabled> 
     </snapshots> 
     <releases> 
     <enabled>true</enabled> 
     </releases> 
    </repository> 
    </repositories> 

</project> 
</pre> 

Autres Pom

<pre> 
<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> 
    <parent> 
    <groupId>org.sonatype.mavenbook</groupId> 
    <artifactId>examples</artifactId> 
    <version>1-SNAPSHOT</version> 
    </parent> 
    <groupId>org.sonatype.mavenbook.ch03</groupId> 
    <artifactId>parent</artifactId> 
    <packaging>pom</packaging> 
    <name>Chapter 3 Parent Project</name> 
    <url>http://sonatype.com/book</url> 
    <modules> 
    <module>simple</module> 
    </modules> 
</project> 
</pre> 

Merci

+0

Ceci est pas une erreur maven standard. Veuillez fournir plus de contexte (par exemple, ce que le plugin est en train d'exécuter lorsque cette ligne se produit).Exécutez à nouveau votre commande maven en utilisant le paramètre -e et publiez la trace de pile. –

+0

Bien sûr, s'il vous plaît voir la question mise à jour – user538442

+0

Pouvez-vous s'il vous plaît fournir votre pom.xml? –

Répondre

0

Dans votre application, je suis confondu avec ArtifactId depuis, je vois que vous avez donner comme "example" où que vous passez votre argument comme "simple". Voici l'exemple simple pour créer un nouvel artefact.

1. Créez un nouveau projet et pom.xml pour l'artefact archétype

Un exemple pom.xml pour un artefact archétype se présente comme suit:

<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>my.groupId</groupId> 
    <artifactId>my-archetype-id</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
</project> 

Tout ce que vous devez spécifier est un groupId, un artifactId et une version. Ces trois paramètres seront nécessaires plus tard pour appeler l'archétype via archetype: create à partir de la ligne de commande.

2. Créez le descripteur archétype

Le descripteur archétype est un fichier appelé archetype.xml qui doit se trouver dans le répertoire src/main/resources/META-INF/maven/répertoire. Un exemple d'un descripteur d'archétype se trouve dans l'archétype de QuickStart:

<archetype 
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org 
    /plugins/maven-archetype-plugin/archetype/1.0.0 
    http://maven.apache.org/xsd/archetype-1.0.0.xsd"> 
    <id>quickstart</id> 
    <sources> 
    <source>src/main/java/App.java</source> 
    </sources> 
    <testSources> 
    <source>src/test/java/AppTest.java</source> 
    </testSources> 
</archetype> 

L'étiquette doit être le même que le artifactId dans l'archétype pom.xml.

Une balise True facultative permet d'exécuter l'archétype: créer même sur des projets existants.

Le,,, et les étiquettes représentent les différentes sections du projet:

<sources> = src/main/java 
<resources> = src/main/resources 
<testSources> = src/test/java 
<testResources> = src/test/resources 
<siteResources> = src/site 
<sources> and <testSources> can contain <source> 
    elements that specify a source file. 

et peuvent contenir des éléments qui spécifient un fichier de ressources.

Placez d'autres ressources telles que celles du répertoire src/main/webapp dans la balise.

A ce stade, il est uniquement possible de spécifier des fichiers individuels à créer mais pas des répertoires vides.

Ainsi l'archétype de QuickStart montré ci-dessus définit la structure de répertoire suivant:

archetype 
|-- pom.xml 
`-- src 
    `-- main 
     `-- resources 
      |-- META-INF 
      | `-- maven 
      |  `--archetype.xml 
      `-- archetype-resources 
       |-- pom.xml 
       `-- src 
        |-- main 
        | `-- java 
        |  `-- App.java 
        `-- test 
         `-- java 
          `-- AppTest.java 

3. Créez les fichiers prototypes et le prototype pom.xml

Le composant suivant de l'archétype à créer est le prototype pom.xml. N'importe quel pom.xml suffira, n'oublions pas les ensembles artefact et groupe comme variables ($ {artifactId}/$ {groupId}). Les deux variables seront initialisées à partir de la ligne de commande lors de l'appel de archetype: create.

Un exemple pour un pom.xml prototype est:

<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>${groupId}</groupId> 
    <artifactId>${artifactId}</artifactId> 
    <version>${version}</version> 
    <packaging>jar</packaging> 

    <name>A custom project</name> 
    <url>http://www.myorganization.org</url> 

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

4. Installez l'archétype et exécuter le plugin archétype

Vous êtes maintenant prêt à installer l'archétype:

mvn install

Maintenant que vous avez créé un archétype, vous pouvez l'essayer sur votre système local en utilisant la commande suivante. Dans cette commande, vous devez spécifier les informations complètes sur l'archétype que vous souhaitez utiliser (son groupId, son artifactId, sa version) et les informations sur le nouveau projet que vous souhaitez créer (artefact et ID groupe). Ne pas oublier d'inclure la version de votre archétype (si vous ne pas inclure la version, vous archétype création peut échouer avec un message que la version: RELEASE n'a pas été trouvée)

mvn archetype:create         \ 
    -DarchetypeGroupId=<archetype-groupId>    \ 
    -DarchetypeArtifactId=<archetype-artifactId>   \ 
    -DarchetypeVersion=<archetype-version>    \ 
    -DgroupId=<my.groupid>        \ 
    -DartifactId=<my-artifactId> 

Une fois que vous êtes satisfait de la état de votre archétype, vous pouvez le déployer (ou le soumettre à ibiblio) comme n'importe quel autre artefact et l'archétype sera alors disponible pour tout utilisateur de Maven.

autre façon de commencer à créer votre Archétype

Au lieu de créer manuellement la structure de répertoire nécessaire pour un archétype, utilisez simplement

mvn archetype:create 
    -DgroupId=[your project's group id] 
    -DartifactId=[your project's artifact id] 
    -DarchetypeArtifactId=maven-archetype-archetype 

afterwhich, vous pouvez maintenant personnaliser le contenu du archetype- Ensuite, passez à l'étape 4 (Installer l'archétype et exécuter le plugin archétype).

3

juste au cas où quelqu'un d'autre frappe ce problème ... Je suis tombé sur la même question (maven seulement à apprendre maintenant) et voici ce qui a fonctionné pour moi:

si vous avez téléchargé le code, ne pas exécuter la commande à partir du répertoire du chapitre exemple, par exemple/Home/uruser/Maven/mavenbook-exemples-1-snapshot/CH03-simple,

Il suffit de configurer un nouveau répertoire comme/home/uruser/Maven/myTestChapterThree puis exécutez la commande suivante:

mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook -e 

recrue trucs pour être sûr, mais au moins threemaven noobs (moi-même inclus) ont frappé ce mur, donc il pourrait être le book de conseils pour télécharger les exemples de chapitres, puis exécutez cette commande qui pourrait être le problème :)

+0

aussi, je ne le vois pas dans la copie que j'ai, mais le livre ne mentionne pas l'utilisation de la convention des barres obliques comme un moyen d'indiquer des sauts de ligne intentionnels sur la page. – gmjordan