2

私は、NetBeans (7.0.1) とビルド用の Maven/Ant を使用して、すべて CentOS 6 で実行する大規模な Java/C++ プロジェクトを維持する任務を負っています。

現在、ビルド スクリプトに問題があります。

スクリプトは Maven ですが、ant タスクを呼び出します。

<!-- create jar launch script -->
<echo file="${techsas.home}/run-exe-jar"
  message="#!/bin/bash${line.separator}java -jar -Dlog4j.configuration=file:///${TECHSAS_HOME}/log4j.xml bin/${project.artifactId}-${project.version}.jar" append="false">
</echo>

問題は最初の行にあります。スクリプトを実行すると、次のエラーが発生します。

BUILD ERROR
--------------------------------------------------
An Ant BuildException has occured: java.io.FileNotFoundException: /home/techsas/NetbeansProjects/<snip>/${TECHSAS_HOME}/run-exe-jar (No such file or director)

$TECHSAS_HOME は有効な環境変数です - 実行中

echo $TECHSAS_HOME

コマンドラインで正しい値が得られます。

私は NetBeans と Maven を初めて使用します。私のオンライン調査では解決策が見つかりませんでした。おそらくここで根本的な間違いを犯していると思います。

NetBeans は ${TECHSAS_HOME} 変数の解決に問題があるようです - そもそも ${techsas.home} の末尾に追加する理由はわかりませんが (${techsas の値を出力する方法はありますか) .home} NetBeans 内から?)

とにかく、どんな助けでも大歓迎です-私は今少し迷っています。

4

2 に答える 2

1

Gnome を使用している場合 (Ubuntu など)、環境変数を設定~/.gnomercして、デスクトップから起動したアプリに表示されるようにする必要があります。

参照: Ubuntu で環境変数を Netbeans Makefile に渡すにはどうすればよいですか?

于 2012-07-17T05:07:22.187 に答える
0

さて、私はそれを解決しました。すこし。

ルート pom では、プロジェクトのホーム ディレクトリは次のように定義されます。

<techsas.home>${TECHSAS_HOME}</techsas.home>

つまり、環境変数 $TECHSAS_HOME を Maven 変数 techsas.home にコピーします。

ただし、何らかの理由で、 ${TECHSAS_HOME} は解決されません-変数が正しく設定されていても(.gnomercおよび.bashrcを介して-@therefromhereに感謝します)。${env.TECHSAS_HOME} も機能しません。私が知る限り、これが正しい方法です (例: http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide )

実際のパスに変更します-つまり

<techsas.home>/usr/local/techsas</techsas.home>

うまく機能させます。なぜこのように動作するのか (私の知る限り、レポのビルド スクリプトは正しいはずです) はまだ謎ですが、少なくとも当面は回避策があります。

于 2012-07-17T12:55:01.287 に答える