2013-07-22 4 views
5

私はmavenを使用してJavaプロジェクトを構築していますが、成功できませんでした。だから、誰も私に必須のタグとpom.xmlに必要な値を教えてプロジェクトをビルドすることができますか?また、どのようにコマンドラインから手動で嵐の依存関係を追加するのですか?プロジェクトのpom.xmlでmavenを使用してJavaプロジェクトをビルドするための必須タグ

私のディレクトリ構造:

ROOT 
| 
|----com--->test----->newpackage---->*.class 
|--- META-INF------>MANIFEST.MF 
|----resource----->words.txt 
|----pom.xml 
|-----*.jar 

は当初、私はMaven Linkを試してみましたが、このような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"> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>1.6</version> 
     <executions> 
      <execution> 
      <phase>com.test.newpackage</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

をしかし、その後私はmvn packageを使用しています。私はこのリンクMaven link 2を使用して、このようなのpom.xmlを作成した後

[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error building POM (may not be this project's POM). 


Project ID: unknown 
POM Location: /home/naresh/Desktop/SharedFolder/StormEclipse/pom.xml 

Reason: Not a v4.0.0 POM. for project unknown at /home/naresh/Desktop/SharedFolder/StormEclipse/pom.xml 


[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.reactor.MavenExecutionException: Not a v4.0.0 POM. for project unknown at /home/naresh/Desktop/SharedFolder/StormEclipse/pom.xml 
    at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:404) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:272) 
    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:606) 
    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.project.InvalidProjectModelException: Not a v4.0.0 POM. for project unknown at /home/naresh/Desktop/SharedFolder/StormEclipse/pom.xml 
    at org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1599) 
    at org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1571) 
    at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:506) 
    at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200) 
    at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:604) 
    at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:487) 
    at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:391) 
    ... 12 more 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: < 1 second 
[INFO] Finished at: Mon Jul 22 14:38:24 IST 2013 
[INFO] Final Memory: 1M/15M 
[INFO] ------------------------------------------------------------------------ 

:それはこの例外をスロー

<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.test.newpackage</groupId> 
    <artifactId>wordcount</artifactId> 
    <version>0.0.1</version> 
    <build> 
     <plugins> 
      <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
    <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
    </descriptorRefs> 
    <archive> 
     <manifest> 
     <mainClass>com.test.newpackage</mainClass> 
     </manifest> 
    </archive> 
    </configuration> 
</plugin> 
     </plugins> 
    </build> 
    <repositories> 
     <!-- Repository where we can found the storm dependencies <repository> 
      <id>clojars.org</id> <url>http://clojars.org/repo</url> </repository> --> 
    </repositories> 
    <dependencies> 
     <!-- Storm Dependency --> 
     <dependency> 
      <groupId>storm</groupId> 
      <artifactId>storm</artifactId> 
      <version>0.8.1</version> 
     </dependency> 
    </dependencies> 
</project> 

それがこの例外をスローこの時間:

[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Failed to resolve artifact. 

Missing: 
---------- 
1) storm:storm:jar:0.8.1 

    Try downloading the file manually from the project website. 

    Then, install it using the command: 
     mvn install:install-file -DgroupId=storm -DartifactId=storm -Dversion=0.8.1 -Dpackaging=jar -Dfile=/path/to/file 

    Alternatively, if you host your own repository you can deploy the file there: 
     mvn deploy:deploy-file -DgroupId=storm -DartifactId=storm -Dversion=0.8.1 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] 

    Path to dependency: 
    1) com.test.newpackage:wordcount:jar:0.0.1 
    2) storm:storm:jar:0.8.1 

---------- 
1 required artifact is missing. 

for artifact: 
    com.test.newpackage:wordcount:jar:0.0.1 

from the specified remote repositories: 
    central (http://repo1.maven.org/maven2) 

答えて

4

Mavenはsrc/main/resourcessrc/main/javaとリソース(フォルダresourceとあなたのMETA-INFディレクトリの中には何も)にあるようにJavaクラスを想定しています。あなたが記述したディレクトリ構造は、ルートディレクトリ(再帰)のjavaクラスのためにmavenを少し微調整しても動作しません。なぜデフォルトの構造を使用しないのですか?あなたは本当にこれを変更する正当な理由があるはずです。

嵐の依存関係:

あなたはすでにあなたのPOMで外部リポジトリへのリンクを持っています。しかし、それはアウトカムされています。これは期待どおりに動作するはずです。あなたがプロキシの背後にいる場合は、define a proxy in your settings.xml

+0

あなたの提案後、私はpom.xmlをこのように保ってきました。また、私はあなたの言ったように私のフォルダ構造を保持しています。今私はターゲットフォルダにjarファイルを作成することができます。どれがMETA-INFのみを含んでいますが、クラスファイルに入力がありません。また、pom.xmlファイル 4.0.0を貼り付けています。 \t com.test。newpackage \t WORDCOUNT \t 0.0.1 \t Naresh

+0

は、あなたの質問に新しい構造を追加していただけますか?私は実際の状態が何であるか分かりません。注意: 'src/main/java'フォルダには.classファイルを含めないでください。コンパイルされていない.javaファイルは含みません。 Mavenはそれらをコンパイルします。このフォルダの.classファイルは無視され、jarファイルに追加されません! –

1

あなたは少なくとも3つのタグを持つ必要があります:

<groupId>...</groupId> 
<artifactId>...</artifactId> 
<version>...</version> 

これは、これらの3つのプロパティを使用して(依存関係を定義する)、mavenがアーティファクトを識別する方法です。

<modelVersion>4.0.0</modelVersion> 

あなたのポンポンファイルで逃した:

0

最も重要なタグは、エラーメッセージに記載されているものです。あなたの構造について

+0

私はmodelVersionを使用しようとしましたが、動作しませんでした – Naresh

+0

そして、何がエラーメッセージでしたか? – khmarbaise

+0

私は最後に私の質問に全体のエラーを貼り付けました。また、私の質問の先頭に私のディレクトリ構造をチェックしてください。この方法で使用すると問題はありますか? – Naresh

関連する問題