1

このarchetypeを使用して Maven Android プロジェクトを作成しました。mirahソース ファイルをプロジェクト内に統合したいと考えています。そこで、ここで説明したプラグインを pom.xml に追加しました。プラグインの構成セクションをセットアップして、ソース ディレクトリが src/main/mirah を指すようにします。

しかし、実行するmvn compileと、src/main/java 内のソースのみがコンパイルされます。問題をデバッグするために実行しmvn -X compileてみましたが、mirah または mirah-maven-plugin に関連するものは見つかりません。

アーキタイプを使用して、 project と project-it (tests) という 2 つのプロジェクトを作成しました。ルート ディレクトリには pom.xml があり、project と project-it ディレクトリには pom.xml があります。ルート ディレクトリとプロジェクトの pom.xml の両方で上記の構成を試しました。

build-helper プラグインの使用に関連するこの質問に遭遇しましたが、私の場合に役立つかどうかはわかりません。私のミラプラグインがまったく呼び出されていないためです。

これは私がやろうとしていることをする正しい方法ですか? セットアップに関するヘルプ、またはこれをトラブルシューティングする方法へのポインタは大歓迎です。

私のpom.xmlの関連ビット

<plugin>
   <groupId>org.mirah.maven</groupId>
   <artifactId>maven-mirah-plugin</artifactId>
   <version>1.0</version>
   <configuration>
       <sourceDirectory>src/main/mirah</sourceDirectory>
       <outputDirectory>target/classes</outputDirectory>
       <bytecode>true</bytecode>
       <verbose>false</verbose>
   </configuration>
   <executions>
      <execution>
         <phase>compile</phase>
         <goals><goal>compile</goal></goals>
      </execution>
   </executions>
</plugin>

以下の回答に従って編集されました。

build-helper プラグインを使用してソース ディレクトリを追加しましたmvn org.mirah.maven:maven-mirah-plugin:1.0:compile。以下の回答を使用して mirah ソースをコンパイルすることができます。ただしmvn compile、src/main/java のソースのみをコンパイルし、src/main/mirah はコンパイルしません。

mvn -X compileここの出力に興味がある人は、パスティがあります。

4

1 に答える 1

2

このページhttps://github.com/calavera/maven-mirah-plugin#readmeには、mirah プラグインがデフォルトのコンパイラ プラグインを拡張すると書かれています。したがって、これは、デフォルトのコンパイラ プラグインで機能する場合、ビルド ヘルパー プラグインが複数のソース ディレクトリで機能することを示唆しています。

mirah プラグインを見ると、デフォルトを使用しているように見えるためsourceDirectory、おそらく自分で指定する必要はありませんoutputDirectory

この-Xスイッチは mirah プラグインに直接影響を与えることはありません。それ自体は (デフォルトのコンパイラ プラグインが行う以上の) トレースを行わないためです。

-Xmirah プラグインが呼び出されていないことを示すために、とにかく出力を表示できますか?

または、mirah プラグインを自分でビルドしてトレースを追加することもできます。複雑なプラグインではないようです。

プラグインを直接起動しようとするとどうなりますか? 例えば

mvn org.mirah.maven:maven-mirah-plugin:1.0:compile

編集:

自分で試してみたところ、これでうまくいきました(「動作」とは、プラグインが呼び出されることを意味します-私のビルドは実際に失敗します)。

<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>temp</groupId>
    <artifactId>temp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.mirah.maven</groupId>
                <artifactId>maven-mirah-plugin</artifactId>
                <version>1.0</version>
                <configuration>
                    <bytecode>true</bytecode>
                    <verbose>true</verbose>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

この出力で:

D:\dev\workspaces\3.6\temp>mvn compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - temp:temp:jar:0.0.1-SNAPSHOT
[INFO]    task-segment: [compile]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [mirah:compile {execution: default}]
[INFO] No sources to compile
Parsing...
  D:\dev\workspaces\3.6\temp\src\main\mirah/test.mirah
Inferring types...
* [Mirah::Typer] Learned local type under #<Mirah::AST::StaticScope:0xbc5245> : a = Type(int)

... ETC ...

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Unknown error - Unknown Error (20047) - D:\dev\workspaces\3.6\temp\target\classes\D:

私は mirah ユーザーではないので、エラーの意味がわかりません。

于 2011-09-09T15:52:26.883 に答える