4

久しぶりのリスナー初発信者。:-)

作業中の Java Web アプリケーションをゆっくりと scala に移行しようとしています。最初の小さなステップは、プロジェクトでコンパイルする scala コードを取得することです。次のように、scala-maven-plugin を webapp 固有の pom に追加しました。

    ...
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <!--version>2.10.3</version-->
        <version>2.7.2</version>
    </dependency>   
  ....
 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
      <execution>
        <id>add-source</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>add-source</goal>
        </goals>
        <configuration>
          <sources>
            <source>src/main/scala</source>
          </sources>
        </configuration>
      </execution>
    </executions>
  </plugin>

    <plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>scala-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>scala-compile-first</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>add-source</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>scala-test-compile</id>
                    <phase>process-test-resources</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

と他のバリエーションですが、これは私の最新のものです。

これは webapp の pom であり、他のアプリと共有する共通コードを含む jar 用の別の pom があります。また、両方のプロジェクトには、他の内部 jar への依存関係があります。

私の scala クラスは、src/main/scala にある小さなコントローラーです。

MavenパッケージまたはMavenコマンドを実行したときに発生するエラーは、実際には次のとおりです。

[INFO] --- scala-maven-plugin:3.1.6:compile (scala-compile-first) @ producttool-webapp ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.663s
[INFO] Finished at: Thu Jan 16 15:34:09 PST 2014
[INFO] Final Memory: 16M/213M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.1.6:compile (scala-compile-fi
rst) on project producttool-webapp: Execution scala-compile-first of goal net.alchim31.maven:scala-m
aven-plugin:3.1.6:compile failed: For artifact {company.com:vine-xml:null:jar}: The version cannot be em
pty. -> [Help 1]

このビルドをデバッグすると警告/エラーが表示されますが、意味がわかりません:

[WARNING] The POM for company.com:vine-xml:jar:1.11.1 is invalid, transitive dependencies (if any) will
not be available: 2 problems were encountered while building the effective model for company.com:vine-xm
l:
[ERROR] 'modelVersion' is missing. @ company.com:vine-xml:[unknown-version]
[ERROR] 'version' is missing. @ company.com:vine-xml:[unknown-version]

私たちが依存している子 jar プロジェクトはその jar に依存しており、pom.xml で指定されており、次のようにデバッグでも実行されています。

[DEBUG]       company.com:vine-xml:jar:1.12.2:compile
...
[DEBUG]     testArtifact: artifact=company.com:vine-xml:jar:1.12.2:compile
[DEBUG]     includeArtifact: artifact=company.com:vine-xml:jar:1.12.2:compile
[DEBUG]     startProcessChildren: artifact=company.com:vine-xml:jar:1.12.2:compile
[DEBUG]       testArtifact: artifact=javax.xml.bind:jaxb-api:jar:2.1:compile
[DEBUG]       omitForNearer: omitted=javax.xml.bind:jaxb-api:jar:2.1:compile kept=javax.xml.bind:jax

私のscala-maven-pluginが依存関係をまったく見ていないのではないかと思っていて、それを修正する方法を尋ねています。または、scala-maven-plugin でオンにできるこれらのようなエラーを無視する方法があるのでしょうか。

ご協力いただきありがとうございます。

4

1 に答える 1

0

別の修正があるかどうかはわかりませんが、以下のような完全に異なるサブプロジェクトから問題のあるjarを除外するとうまくいきました。

    <exclusion>
    <artifactId>vine-xml</artifactId>
    <groupId>company.com</groupId>
    </exclusion>
于 2014-01-17T07:22:09.823 に答える