問題タブ [taskdef]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - さまざまな Ant タスクにカスタム log4j.xml を提供するにはどうすればよいですか?
ビルド プロセスの一部として複数のタスク定義に依存するビルド ファイルがあります。これらのタスク定義項目 (webdoclet や jasper2 など) は、log4j をロガーとして使用します。理想的には、それぞれに異なる log4j 構成ファイルを提供できるようにしたいのですが、最低限、どの log4j 構成ファイルを使用するかを指定できるようにしたいと考えています。
以前は機能していたのは、タスク定義で使用する log4j.xml を含むディレクトリをクラスパスの先頭に配置することでした。例えば:
実際、「Build」ディレクトリがクラスパスの先頭にあり、log4j.xml がそのディレクトリに存在することを確認しました。ただし、デバッグで log4j を使用して詳細モードで ant を実行すると、log4j が現在の作業ディレクトリにある log4j.xml を選択していることがわかります。これは、必要なものではありません。Log4j は、デフォルトの log4j.xml を解決するためにクラスパスを使用していないようです。
私は log4j 1.2.8 (より大きなフレームワークに組み込まれているため、アップグレードできません) を使用していますが、これらのタスク定義の一部は commons-logging 1.0.3 に依存しているようです。ビルド プロセスでは、Sun Java 5 を使用します。
antをset ANT_OPTS=-Dlog4j.configuration=Build/log4j.xml
実行する前に、タスク定義が目的の log4j.xml を正しくロードします。
以前は機能していた taskdef のクラスパスの先頭に「Build」ディレクトリを置きます。何が変わったのかわからない。build.xml 内で、特定のタスクにどの log4j 構成ファイルを使用するかを制御できる動作を復元するにはどうすればよいですか? ANT_OPTS を設定する以外に、ファイルを再配置してアプリケーションの log4j.xml を現在の作業ディレクトリから移動し、log4j が正しい log4j.xml ファイルを見つけられるようにする方法はありますか?
ant - Anttaskdefが./netの外部にリソースをロードできないのはなぜですか
taskdefを使用して外部antタスクを宣言する場合、たとえばant-contribの場合、提案されるセットアップは、次のtaskdefを使用することです。
これは、antcontrib.propertiesがbuild.xmlファイルに対してnet / sf/antcontribにある場合に機能します。
しかし、それをlib / net / sf / antcontribに入れて、taskdefをに変更すると
Antはプロパティファイルを見つけることができません、それはエラーを出します
antはlibディレクトリを個別に扱い、そこからtaskdefリソースをロードできないようです。
ant - Groovy + Antbuilder: タスク定義で Grape を使用するには?
これは に関連しています。これをシミュレートして、Maven-ant-tasks jar を Grape で動的に追加しようとしています。
Grape.grab() を使用して、次のように maven-ant-tasks を AntBuilder で使用できるようにしました。
しかし、Grape は ANT エンジンが使用しているものとは別の ClassLoader にモジュールを追加するため、これは機能しません。そこで、この AntBuilder classpath questionからのアドバイスを受けて、Grape にルート ClassLoader を使用させました。
これで LinkageError がスローされます。
これを機能させるためのヒントはありますか?それとも、全体が悪い考えですか?
ant - Ant タスク定義にはどのクラスパスが必要ですか?
私はAntが初めてです。taskdef の「classpathref」に指定する値を教えてください。クラスファイルのパスになりますか?はいの場合、私はそれを試しましたが、うまくいかないため、例を挙げることができます。
grails - Grails antタスクが機能しない-Grailsを開始できません:java.lang.reflect.InvocationTargetException
Grailsで非常に基本的な実行をしているように見えるものを取得する際に問題が発生しています。Antスクリプトからgrailsコマンドを呼び出したい-Grailsはこれを実現するためのGrailsタスクを提供します。ドキュメントに従ってGrailsのtaskdefとクラスパスを定義しましたが、どのコマンドを呼び出しても同じエラーが発生します...
「grailscreate-app」を使用して新しいGrailsアプリを作成してから、integrateantコマンド「grailsintegrate-with--ant」を実行してデフォルトのbuild.xmlを生成しても、いずれかのタスクを実行すると同じエラーが発生します。生成されたbuild.xmlで。
これをGrails1.3.1、1.3.4、および1.3.5でテストしましたが、同じエラーが発生します。
他の誰かがこの問題に遭遇しましたか?私が間違っているのは愚かなことであるに違いありません。さもないと、Grailsファクトリーのドアから出ることはありませんでした...;)
ant - タスク定義のクラスパス?
Ant で新しいタスクを定義しています。それを jar としてエクスポートし、ビルドファイルに追加しました。
問題は、これが実行時に失敗することです。クラスが見つからなかったことがわかります。クラスパスにjarを追加することで修正されます。
私の質問は次のとおりです。クラスパスを変更せずに、Ant ビルドファイルから自分の jar を参照できる方法はありますか?
ant - AntオプションタスクSSHExecおよびSCPの問題。クラスパスの問題?
コマンドラインから動作するようにAntスクリプト(現在MyEclipse内から使用中)を変更しているところです。私はこれを行っているので、誰でもプロジェクトをチェックアウトして、MyEclipseなしでビルドできます。私が遭遇している問題は、MyEclipseに舞台裏の依存関係が含まれていることです。これを行うには、ワークスペースのAnt構成を確認し、設定ダイアログで選択したライブラリに基づいてクラスパスをコンパイルします。簡単に言うと、MyEclipseを使用せずに、これらの依存関係を取得し、スクリプトを十分にスマートにして、それらを単独で含める必要があります。
私に頭痛の種を与えているタスクは、sshexecタスクとscpタスクです。これらは、実行するためにjschのバージョンを必要とするオプションのantタスクです。MyEclipseのAntクラスパスからjschを削除し、プロジェクト自体のlibフォルダー(lib / dev)に追加しました。com.jcraft.jsch.UserInfo
MyEclipseは、SSHExecクラスがjsch-0.1.44.jarの一部である依存クラスを見つけることができなかったとすぐに文句を言いました。
ビルドスクリプト内からAntのクラスパスを設定する方法がわかりません。スクリプトに要素を追加する次のコードがありますpath
が、タスクまたは別の要素に明示的に関連付けられていない限り、Antはこれを使用しないと思います。
taskdef
sshexecタスクとscpタスクを定義するために使用する必要があるようです。
MyEclipseはこれについて不平を言います、"taskdef A class needed by class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec cannot be found: com/jcraft/jsch/UserInfo"
それは明らかにclasspathref、web-jarsにあります。そして、この不正な形式または誤って構成されたtaskdefのために、スクリプトで何も実行できません。
java - 統合された ant - taskdef クラスローダーの問題
Weblogic 10.3 のエンタープライズ アプリケーションには、内部で ant スクリプトを実行する Web サービスが含まれています。私の問題は、 が原因でカスタム タスクを実行できないことjava.lang.ClassNotFoundExceptions
です。
(これはすべて Tomcat 5.5 でうまく動作します)
私のタスクの実装は、4 つの異なる場所にあります。
- something.ear/APP-INF/lib/antaddon.jar!/foo/bar/MyTask.class
- something.ear/Webservice.war/WEB-INF/lib/antaddon.jar!/foo/bar/MyTask.class
- something.ear/Webservice.war/WEB-INF/classes/foo/bar/MyTask.class
- サーバー/lib/antaddon.jar!/foo/bar/MyTask.class
バンドルされているため、Weblogic 10.3
統合されたAnt 1.6.5
モジュールが問題を引き起こす可能性があることがわかりました。Ant 1.8.0
これを克服するために私の weblogic-application.xml に。(これでいくつか解決しましたNoSuchMethodErrors
..)しかし、私のタスクはまだ見つかりません:
これを解決する方法を教えてください。
ant - Taskdefがエラーで失敗します:taskdef要素のclassname属性が未定義です
この行を含むAntビルドファイルがあります。
ビルドはこの行で失敗し、次のようになります。
これは、Antがクラスファイルを見つけられないことを意味していると思います。
Antはこのファイルをどこで探していますか?場所Xに追加するためにどこで見つけることができますか?
ant - ダウンロード後の ant ライブラリのロード
リポジトリからライブラリ (ivy と svnant) をダウンロードし、それらを同じビルド スクリプトの taskdef として使用する Ant スクリプトを作成しようとしています。すべてのライブラリが存在するか、すべて欠落している場合は機能しますが、セカンダリ ライブラリ (svnClientAdapter など) が必要な場合は、エラーが発生します。
つまり、プライマリ ライブラリが存在するかどうかに関係なく、すべて問題ありません。しかし、プライマリ ライブラリが存在し、依存ライブラリの 1 つが存在しない場合、エラーが発生します。他に何も変更されていない場合、2 番目の呼び出しは成功します。
タスクとクラスから検出/ダウンロード タスクを呼び出してみましたが、結果は同じでした。私が持っているコードは次のとおりです。
svnant.jar だけが欠落している場合、すべてが期待どおりに機能します。これは、svnClientAdapter.jar が見つからない場合に taskdef タスクで「class not found」エラーが発生し、タスクを使用しようとすると「NoClassDefFoundError」で失敗します。前述のように、retrieve.antlib-svn ターゲットが依存関係、「ant」タスク、および「java」タスク (fork を使用) として呼び出される場所を試しました。
これは、Ubuntu 10.10 および RedHat ELS6 で JDK 1.6.0_11 を使用する Ant 1.7.0 です。簡潔にするために、検出/回避コードを削除しました。デバッグをオンにすると、実行中の呼び出しと失敗した呼び出しの唯一の違いは、欠落している jar が ant のクラスパスに含まれていることです。これを taskdef タスクでオーバーライドしようとしています。
新しいトップレベルの ant 呼び出しを生成してもかまいませんが、ivy.project.invoked-targets は 1.7.0 では利用できないようで、同じ開始ターゲットで ant を呼び出す別の方法を見つけていません。