2011-10-14 9 views
11

なぜMavenは空の文字列と空白文字列 "null値"を扱うのですか?次のpomを取る - 私は誤って構成された引数についての通常の偽のメッセージを得る。私は不当なエラーメッセージで私を苦しめるのではなく、実際にMavenがそのように認識する空の値を渡すように手配しますか?Mavenの "Null"引数と "空"引数の比較

[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Misconfigured argument, value is null. Set the argument to an empty value if this is the required behaviour. 

の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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.test</groupId> 
    <artifactId>test</artifactId> 
    <packaging>pom</packaging> 
    <version>0</version> 
    <name>test</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <my.val>    </my.val> 
    </properties> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.2.1</version> 
       <executions> 
        <execution> 
         <id>Exec test</id> 
         <phase>prepare-package</phase> 
         <goals> 
          <goal>exec</goal> 
         </goals> 
         <configuration> 
          <executable>${env.JAVA_HOME}/bin/java</executable> 
          <arguments> 
           <argument>${my.val}</argument> 
          </arguments> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

私はあなたが参照するこの「偽のメッセージ」に遭遇したことは確かではありません。それはいつもそうではないことを示しているかもしれません。誰もがあなたが話していることを知っていると仮定するのではなく、より詳細な情報を提供したいかもしれません。 –

+0

Mavenの最高の特有の強制的な方法論のおかげで、 "misconfigured argument"というメッセージが表示されている人は、私はおそらく唯一の人にはなりませんが、そこにはあります。興味深いもの: – cbmanica

+0

これはexecプラグインの欠点のようだ。それを確認しましたか/バグ/拡張レポートを提出しましたか? @Ryan。 –

答えて

7

問題は2007年から知られているように見える - あなたのケースでは>http://mail-archives.apache.org/mod_mbox/maven-users/200708.mbox/%[email protected]%3E

あなたが代わりに<commanlineArgs>設定パラメータを使用しようとするかもしれません。

多くの引数がある場合はそれほど大したことではありませんが、1つまたは2つしかない場合はオプションになる可能性があります。 、実際に

<commandlineArgs>-classpath %classpath my.main.class.MyMainClass ${my.val}</commandlineArgs> 

http://jira.codehaus.org/browse/MEXEC-104

UPDATE <commandlineArgs>

クラスパスを供給するためには、次の操作を行います。

<configuration> 
    <executable>${env.JAVA_HOME}/bin/java</executable> 
    <commandlineArgs>${my.val}</commandlineArgs> 
</configuration> 

は、私はまたMEXECのJiraでバグレポートを作成しましたパーサーは長い行を折り畳んで読みやすくすることもできます。

<commandlineArgs> 
    -classpath %classpath 
    my.main.class.MyMainClass 
    ${my.val} 
</commandlineArgs> 
0

あなたは-Ddummy=dummyのようないくつかのダミーシステムプロパティの値にmy_valを設定することができます。 私はそれがエレガントではないが、少なくとも回避策は知っています。

関連する問題