問題タブ [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.
ant - Maven 依存関係を使用した Ant での testNG taskdef 定義
Ant と Maven を使用してプロジェクトを構築しようとしています。テストユニットにtestNGを使用しています。ここで述べたように ( http://testng.org/doc/ant.html )、次のように taskdef を定義しました。
アリで。
Mavenでは、次を追加しました(ここに記載されているように:http://testng.org/doc/maven.html)
Maven は maven リポジトリからファイルを取得しており、/.m2 の下の場所を確認しました。Maven から testNG を取得したので、Ant の taskdef を変更して、Maven リポジトリでこの新しいものを使用する必要があります。その方法がわかりません。私は次のことを試しました:
と
と
しかし成功しませんでした.2番目はclasspathrefを使用すべきではないと不平を言い、最初のものはクラスを指定する必要があると言っています. 3番目のものは、ある程度機能していますが、完全ではありません。それは順調に進んでおり、タスク定義ステップに合格すると思いますが、テストを実行していません。Ant の一部 (3 つ目):
Ant 出力の一部: (echo が実行されたことに注意してください。何らかの方法で taskdef ステップが渡されます)
Ant で testngtasks を定義 ( taskdef ) するために、Maven リポジトリで testNG ライブラリを使用する方法がわかりません。どんな洞察も高く評価されます
ant - IntellijIDEAはXJCタスク属性を認識しません
XJCタスク定義を含むantbuild.xmlファイルがあります。
jaxb dircotnainsjaxb-xjc.jarとXJCTaskクラスが含まれています。
次に、いくつかのターゲットでxjcタスクを呼び出します。
Intellij IDEAは、xjc呼び出しの構造/スキーマを認識せず、すべての属性(ターゲット、パッケージ、ヘッダー)と含まれている要素(スキーマ)を赤で強調表示します。
Antオプションを選択し、jaxb-xjc.jarを追加のクラスパスリストに追加した場合、これは役に立ちません。バンドルされたAnt1.8.2を使用しています
悪い点は、IDEAでコンパイルすると、関連するエラーがたくさん発生することですが、ビルドスクリプトを実行すると、すべてが正常に機能します。これらのエラーを抑制したい。
何か案は?
java - Anttaskdef-PermGenスペースが不足しています
次のようなサブプロジェクトを作成するAntタスクを使用する <antcall>
と<ant>
、次のいずれかのエラーが原因で繰り返し呼び出されるとビルドが失敗する可能性があります。
- java.lang.OutOfMemoryError:PermGenスペース
- java.lang.OutOfMemoryError:Javaヒープスペース
このエラーは、呼び出されているタスクの1つがまたはを使用して定義されている場合にのみ発生し、。などのAntにバンドルされているタスクを使用している<typedef>
場合<taskdef>
は表示されません<javadoc>
。
OutOfMemoryError
Javaヒープの最大サイズを増やすことなく回避する方法はありますか?ヒープサイズを大きくするとしばらくは機能しますが、メモリを大量に消費するタスクを追加すると、問題が再発します。
次のタスク例と関連build.xml
ファイルにより
OutOfMemoryError
、LinuxボックスでJavaヒープが10 MBに設定されます(テスト用)。Antタスクは、メモリを大量に消費するオブジェクト(この場合はClosure Template Soy Module用のGuiceインジェクター)を作成します。このオブジェクトは、を使用して繰り返し呼び出され<antcall>
ます。
CreateGuiceInjectorTask.java
build.xml
テスト出力:
java - Ant ビルド用に Ivy を構成する方法
私は現在 にいANT_HOME
ます/home/<myuser>/ant/1.8.4/ant-1.8.4
。
依存関係を含む Apache Ivy tarball をダウンロードしました。に抽出しました/home/<myuser>/ivy/2.3.0-rc1/ivy-2.3.0-rc1
。
次に、にコピー/home/<myuser>/ivy/2.3.0-rc1/ivy-2.3.0-rc1/lib/*.jar
しましたANT_HOME/lib
。Ant がプラグイン/拡張機能でどのように機能するかについての私の理解が正しければ、Ant は実行時に Ivy のすべてのタスクにアクセスできるはずです。
次の質問は、Ant ビルドファイル内で Ivy タスクをどのように定義するかということです。ivy-retrieve
、ivy-resolve
およびivy-publish
タスクを使用したいとします。コマンドラインからAntビルドを実行するときにこれらのタスクを機能させるために(XMLで)行う必要があるすべての構成は何ですか(Ant-Eclipseプラグインを介してビルドしません)。前もって感謝します!
xml - 私の最初のAntタスクを書く:私は何が欠けていますか?
私はこの記事を読み、それを使用して次のような最初のAntタスクを作成しましたAutoTestTask
。
また、このオブジェクトをコンパイルしてパッケージ化しましauto-test.jar
た。
Antの理解が正しければ、それを別のプロジェクトのビルドの一部として含めるために、次のXMLを使用します。
$ {ANT_HOME} / libディレクトリにもコピーする必要があると思います-誰か確認してもらえますか?私を混乱させているのは、XMLの上部にある属性、具体的にはその部分です。これは、「*名前空間で修飾されたものはすべて、ルートパッケージが*の$ {ANT_HOME} / lib内にある」というAnt固有のプロトコルですか?もしそうでなければ、誰かがそれが何を意味するのか説明できますか?auto-test.jar
xmlns:at="antlib:org.me.auto-test"
antlib:<whatever>
at
org.me.auto-test
また、明らかなものが欠けている場合や、設定が間違っている場合は、お知らせください。前もって感謝します!
ant - Gradle : Ant ターゲットに依存するタスクを定義する方法
こんにちは、タスクを含むすべてのタスクを一覧表示するとgradle testGradle
、インポートされたすべての Ant タスクが表示されますが、Ant タスクに依存するタスクを作成しようとすると、「タスク ':testGradle' の依存関係を特定できませんでした。
問題のある行: task testGradle(dependsOn: 'init' )
- 明らかに ant init タスクが表示されません。
私は何を間違えましたか?
build.gradle
Gradleタスクすべて
その他のタスク
all compile - メイン ソース ツリーの Java ファイルをコンパイルする
byWorld5 copyTestConfiguration - 単体テスト構成をコピーします deployLoggerProperties - logging.properties を tomcat にデプロイします execMoped importTasks install - Tomcat リストにアプリケーションをインストールします - Tomcat アプリケーションをリストします init - コンパイル アーティファクトを実行する準備をします reload - Tomcat でアプリケーションをリロードします start - Tomcat アプリケーションを開始します stop - Tomcat を停止しますapplication test - junit テストの実行 compile - メイン ソース ツリーの Java ファイルのコンパイル
>グラドル-v
グラドル 1.1
Gradle ビルド時間: 2012 年 7 月 31 日火曜日午後 1:24:32 UTC Groovy: 1.8.6 Ant: 2012 年 5 月 22 日にコンパイルされた Apache Ant(TM) バージョン 1.8.4 Ivy: 2.2.0 JVM: 1.6.0_24 (Sun Microsystems Inc. 20.0-b12) OS: Linux 2.6.32-220.23.1.el6.x86_64 amd64
>gradle -c
org.gradle.api.GradleScriptException: ルート プロジェクト 'moped_gradle' の評価中に問題が発生しました。org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54) で org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:127) で org.gradle.configuration.BuildScriptProcessor .evaluate(BuildScriptProcessor.java:38) at org.gradle.configuration.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:43) at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:463) at org. gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:75) at org.gradle.configuration.ProjectEvaluationConfigurer.execute(ProjectEvaluationConfigurer.java:23) at org.gradle.configuration. ルート プロジェクト 'moped_gradle' で。org.gradle.api.internal.AbstractDynamicObject.propertyMissingException(AbstractDynamicObject.java:43) で org.gradle.api.internal.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:35) で org.gradle.api.internal.CompositeDynamicObject.getProperty (CompositeDynamicObject.java:60) org.gradle.groovy.scripts.BasicScript.propertyMissing(BasicScript.java:70) で build_62g86rvs7k0vqsu3ssgdsrobsc.run(/home/natalik/MyInstalls/moped_gradle/build.gradle:14) で org.gradle .groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52) ... 33 詳細
ant - taskdefで定義されたタスクは、デフォルトでantでフォークモードまたは同じプロセス内で実行されますか?
taskdefにはfork属性がないため、デフォルトでは、taskdefで定義されたタスクはforkモードで実行されるか、antスクリプトが実行される同じプロセス内で実行されます。
私のタスクは以下のように定義されています
よろしくお願いします、ソマン
ant - antのタスク定義でクラスパスを解決し、必要なターゲットのみを実行する
私のmain-build.xmlは次のようになります:
deploy.xmlは、サードパーティの jar 内に存在するクラスの 1 つで taskdef ant タスクを使用します。
sub-build.xmlはmain- build.xml をインポートし、 deploy.xmldeploy.xml
に存在する ant ターゲットを実行しようとしますが、不平を言って失敗します
そんな悩みを解決する方法。ターゲットを実行する前にファイルをインポートすると、すべてのタスク定義とインポートが実行されるため、失敗します。問題のあるすべてのサードパーティの jar を ant のクラスパスに追加することが正しい方法かどうかわからない?.
ant - Gradle から使用すると、Taskdef + available タスクが失敗する
taskdef を介して ant-contrib をロードしています。次に、「IfTask」が作成されていることを利用可能なタスクで確認しています。これは失敗します
利用可能なタスクは、タスク定義で使用されるのと同じクラスローダーを使用してチェックしていないようです?
オレグ・パブリフの回答後に編集 少し気を悪くした後、これは効果的に機能します。私は私の質問でより明確であるべきでした。
これは Ant では機能しますが、Gradle から ant を呼び出す場合、つまり gradle ビルドでは機能しません。