タグ付けされた質問 「build-process」

ソースコードファイルをコンピューターで実行できるスタンドアロンのソフトウェアアーティファクトに変換するプロセス

9
Javaプロジェクトのビルドとバージョン番号付け(ant、cvs、hudson)
Javaプロジェクトにおける体系的なビルド番号付けとバージョン番号管理の現在のベストプラクティスは何ですか?具体的には: 分散開発環境で体系的にビルド番号を管理する方法 ソース内のバージョン番号を維持する方法/ランタイムアプリケーションで利用可能 ソースリポジトリと適切に統合する方法 バージョン番号とリポジトリタグをより自動的に管理する方法 継続的ビルドインフラストラクチャと統合する方法 非常に多くのツールが利用可能であり、ant(使用しているビルドシステム)にはビルド番号を維持するタスクがありますが、CVSやsvnなどを使用して複数の同時開発者がこれを管理する方法は明確ではありません。 [編集] いくつかの優れた役立つ部分的または具体的な回答が以下に表示されているので、それらのいくつかを要約します。これには本当に強力な「ベストプラクティス」はなく、重複するアイデアのコレクションがあるように思えます。以下に、私の要約と、人々がフォローアップとして回答しようとする可能性があるいくつかの結果の質問を示します。[stackoverflowの新機能...これが間違っている場合はコメントを入力してください。] SVNを使用している場合は、特定のチェックアウトのバージョン管理が行われます。ビルド番号はこれを利用して、特定のチェックアウト/リビジョンを識別する一意のビルド番号を作成できます。[レガシーの理由で使用しているCVSは、このレベルの洞察を提供していません...タグを手動で操作することで、その一部を実現できます。] ビルドシステムとしてmavenを使用している場合、SCMからバージョン番号を生成するためのサポートと、リリースを自動的に生成するためのリリースモジュールがあります。[私たちはさまざまな理由でmavenを使用できませんが、これは使用できる人を助けます。[ マルセロモラルのおかげで]] ビルドシステムとしてantを使用している場合、次のタスクの説明は、ビルド情報をキャプチャするJava .propertiesファイルを生成するのに役立ちます。これは、さまざまな方法でビルドに組み込むことができます。[このアイデアを拡張して、ハドソン派生の情報を含めました。おかげでmarty -lamb ]。 Antとmaven(およびhudsonとcruiseコントロール)は、ビルド番号を.propertiesファイルまたは.txt / .htmlファイルに取得する簡単な手段を提供します。これは、意図的または偶発的に改ざんされないように「安全」ですか?ビルド時にそれを「バージョン管理」クラスにコンパイルする方が良いですか? アサーション:ビルド番号は、hudsonのような継続的インテグレーションシステムで定義/制定する必要があります。[ marcelo-moralesに感謝します ]この提案を採用しましたが、リリースエンジニアリングに関する質問を解き明かします。リリースはどのように行われるのですか?リリースに複数のビルド番号はありますか?異なるリリースのビルド番号の間に意味のある関係はありますか? 質問:ビルド番号の目的は何ですか?QAに使用されますか?どうやって?開発中に複数のビルド間を明確にするために主に開発者によって使用されていますか、それともQAがエンドユーザーが取得したビルドを特定するために使用されていますか?目標が再現性である場合、理論的にはこれがリリースバージョン番号で提供されるものです-なぜそうではないのですか?(以下の回答の一部としてこれに回答してください。これは、あなたが行った/提案した選択を明らかにするのに役立ちます...) 質問:手動ビルドでビルド番号の場所はありますか?これは問題があるので、誰もがCIソリューションを使用する必要がありますか? 質問:ビルド番号をSCMにチェックインする必要がありますか?目標が特定のビルドを確実かつ明確に識別することである場合、クラッシュ/再起動/などする可能性があるさまざまな継続的または手動のビルドシステムに対処する方法... 質問:ビルド番号は短くて甘いもの(つまり、単調に増加する整数)にする必要があります。これにより、アーカイブのためにファイル名を簡単に挿入したり、コミュニケーションなどで参照したりしやすくなります。日付スタンプ、マシン名など? 質問:ビルド番号の割り当てが大規模な自動リリースプロセスにどのように適合するかについて詳細を教えてください。はい、メイベン愛好家、私たちはこれが行われていることを知っていますが、私たち全員がまだクールエイドを飲んでいるわけではありません... 少なくともcvs / ant / hudsonのセットアップの具体例については、これを完全な答えに具体化して、誰かがこの質問に基づいて完全な戦略を構築できるようにしたいと思います。この特定のケース(cvsタグ付けスキーム、関連するCI構成項目、およびビルド番号をリリースに組み込んでプログラム的になるようにリリースするリリース手順を含む)についての説明を提供できる人は、「The Answer」としてマークしますアクセス可能。)別の特定の構成(たとえば、svn / maven / cruise control)について質問/回答したい場合は、ここから質問にリンクします。--JA [編集10月23日09]他のいくつかの回答にも良いアイデアが含まれている一方で、それは合理的な解決策だと思うので、私はトップ投票の回答を受け入れました。これらのいくつかをmarty-lambで合成することに挑戦したい場合は、別のものを受け入れることを検討します。私がmarty-lambに関して私が持っている唯一の懸念は、確実にシリアル化されたビルド番号を生成しないことです-明確ではないビルド番号を提供するためにビルダーのシステムのローカルクロックに依存しますが、これは素晴らしいことではありません。 [7月10日編集] 以下のようなクラスを含めます。これにより、バージョン番号を最終的な実行可能ファイルにコンパイルできます。さまざまな形式のバージョン情報がログデータ、長期のアーカイブ出力製品で出力され、特定のビルドまでの出力製品の(場合によっては後で)分析を追跡するために使用されます。 public final class AppVersion { // SVN should fill …

9
なぜメイベン?メリットは何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する antと言った場合と比較して、mavenを使用する主な利点は何ですか?便利なツールというよりは迷惑なようです。私はMaven 2とプレーンEclipse Java EE(m2eclipseなし)、およびtomcatを使用します。 mavenの支持者は、 Mavenを使用すると、パッケージの依存関係を簡単に取得できます Mavenはあなたに標準のディレクトリ構造を強制します 私の経験では パッケージの依存関係を把握することはそれほど難しくありません。とにかくめったにそれをしません。おそらく、プロジェクトのセットアップ中に1回、アップグレード中に数回です。mavenを使用すると、依存関係の不一致、pomの記述が不適切、そしてパッケージの除外を実行することになります。 FIX-COMPILE-DEPLOY-DEBUGサイクルが遅く、生産性が低下します。これが私の主な不満です。変更を加えたら、Mavenビルドが開始されるのを待ち、それがデプロイされるのを待つ必要があります。ホットデプロイメントはまったくありません。 それとも私はそれを間違っていますか?私を正しい方向に向けてください、私はすべて耳です。

7
アーティファクトの依存関係ツリーを取得するにはどうすればよいですか?
dependency:tree特定のプロジェクトの依存関係ツリーを表示するために使用できます。しかし、私が必要なのは、サードパーティのアーティファクトの依存関係ツリーを確認することです。 空のプロジェクトを作成できると思いますが、もっと簡単なものを探しています(いくつかのアーティファクトに対してこれを行う必要があります)。

4
Mavenで実行可能なjarを構築していますか?
次のように、mavenを使用して「logmanager」と呼ばれる小さなホームプロジェクトの実行可能jarを生成しようとしています。 Mavenを使用して、依存関係を持つ実行可能JARを作成するにはどうすればよいですか? そこで表示されたスニペットをpom.xmlに追加し、mvn assembly:assemblyを実行しました。logmanager / targetに2つのjarファイル(logmanager-0.1.0.jarとlogmanager-0.1.0-jar-with-dependencies.jar)が生成されます。最初のjarをダブルクリックするとエラーが発生します。 Could not find the main class: com.gorkwobble.logmanager.LogManager. Program will exit. jar-with-dependencies.jarをダブルクリックしたときの少し異なるエラー: Failed to load Main-Class manifest attribute from: C:\EclipseProjects\logmanager\target\logmanager-0.1.0-jar-with-dependencies.jar パスとクラス名をコピーして貼り付け、POMのスペルをチェックしました。私のメインクラスは、Eclipse起動構成から正常に起動します。誰かが私のjarファイルが実行されない理由を理解するのを手伝ってくれる?また、なぜ最初に2つのjarファイルがあるのですか?さらに情報が必要な場合はお知らせください。 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.gorkwobble</groupId> <artifactId>logmanager</artifactId> <name>LogManager</name> <version>0.1.0</version> <description>Systematically renames specified log files on a scheduled basis. Designed to help manage …

2
src /のすべての.cppファイルをobj /の.oにコンパイルしてから、。/のバイナリにリンクできますか?
私のプロジェクトディレクトリは次のようになります。 /project Makefile main /src main.cpp foo.cpp foo.h bar.cpp bar.h /obj main.o foo.o bar.o 私は何を私のメイクをしたいと思い、すべてのコンパイルすることです.cpp内のファイル/srcにフォルダを.o内のファイル/objのすべてのリンク、その後、フォルダ.o内のファイルを/obj最上位レベルのフォルダに出力バイナリに/project。 私はメイクファイルの経験がほとんどないので、これを達成するために何を検索すればよいか本当にわかりません。 また、これはこれを行う「良い」方法ですか、それとも私がやろうとしていることに対してより標準的なアプローチがありますか?


10
プログラムはコンパイル時にライブラリに依存しますが、ランタイムには依存しませんか?
ランタイムとコンパイル時の違い、および2つを区別する方法は理解していますが、コンパイル時の依存関係とランタイムの依存関係を区別する必要があるだけではわかりません。 私が窒息しているのはこれです:コンパイル時にプログラムが依存していたプログラムが、実行時に何かに依存しないようにするにはどうすればよいですか?私のJavaアプリがlog4jを使用している場合、コンパイル(log4j内からのメンバーメソッドとの統合およびメンバーメソッドの呼び出し)とランタイム(log4j内のコードが発生すると何が起こるかを完全に制御できないコード)のために、log4j.jarファイルが必要です。 .jarが実行されます)。 私はIvyやMavenなどの依存関係解決ツールについて読んでいます。これらのツールは、これら2つのタイプの依存関係を明確に区別します。私はそれの必要性を理解していません。 誰でも簡単な「キングの英語」タイプの説明を、できれば私のような貧しい樹液でも理解できる実際の例を使って説明できますか?

8
Mavenを使用して、必要なすべてのJARファイルを最終的なJARファイル内のライブラリフォルダーに配置するにはどうすればよいですか?
私はスタンドアロンアプリケーションでMavenを使用していて、ここにある回答の1つにあるように、ライブラリフォルダー内のJARファイルにすべての依存関係をパッケージ化したいと思います。 Mavenを使用して、依存関係を持つ実行可能JARを作成するにはどうすればよいですか? 私の最終的なJARファイルには、依存関係をmaven-shade-plugin.m2フォルダーのMaven階層のようなフォルダーの形式で配置するものとは異なり、依存関係をJARファイルとして含むライブラリフォルダーが必要です。 ええと、実際には現在の構成で十分ですが、アプリケーションの実行時にJARファイルをロードするときに問題が発生します。クラスを読み込めません。 これが私の設定です: <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/classes/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.myapp.MainClass</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> …

2
Xcode変数
Xcodeでは、PROJECT_DIRスクリプトの実行ビルドフェーズなど、特定の状況で使用するような変数を取得できることを知っています。ビルドタイプ(つまり、ReleaseまたはDebug)を取得できるかどうか疑問に思っています。何か案は?

18
「ビルドサーバー」のポイントは何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する 私は非常に大規模な組織で働いたことはなく、「ビルドサーバー」を持つ会社で働いたことはありません。 彼らの目的は何ですか?開発者がプロ​​ジェクトをローカルマシンでビルドしていないのはなぜですか?プロジェクトによっては、妥当な時間でそれを構築するために、より強力なマシンが必要となるほど大きいものがありますか? ビルドサーバーが有用であると私が思う唯一の場所は、ビルドサーバーと継続的に統合して、リポジトリにコミットするものを常にビルドすることです。十分な規模のプロジェクトに取り組んでいないのですか? 誰か、私を啓発してください:ビルドサーバーの目的は何ですか?

10
Maven:担当者では利用できないjarをJ2EEプロジェクトに含める方法は?
私のJ2EEプロジェクトにはいくつかの依存関係があります。これらは専用ライブラリであるため、Mavenリポジトリでは使用できません。これらのライブラリは実行時に使用できる必要があるため、target /.../ WEB-INF / lib ...にコピーする必要があります。 現在、私はそれらをPOMのシステム依存関係としてリストしていますが、この方法では、コンパイル中にターゲットビルドにコピーされないという問題があります。また、この方法はあまりエレガントではありません。 それらをMavenに統合する最良の方法はどれですか? 注:自分のMavenリポジトリーを作成したくありません。

30
なぜMavenはそのような悪い担当者を持っているのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 Mavenがどのように悪いのかについては、インターネット上で多くの話題があります。私はここ数年Mavenのいくつかの機能を使用しており、私の考えで最も重要な利点は依存関係の管理です。 Mavenのドキュメントは十分ではありませんが、一般的に私が何かを達成する必要がある場合は、一度理解してから機能します(たとえば、jarへの署名を実装した場合)。Mavenは素晴らしいとは思いませんが、それがなければ本当の苦痛になるいくつかの問題を解決します。 では、なぜMavenはこのような悪い担当者を抱えているのでしょうか?また、Mavenで今後どのような問題が予想されますか?多分私が知らないはるかに良い代替案がありますか?(例えば、私はIvyを詳細に見たことがありません。) 注:これは、引数を引き起こす試みではありません。これはFUDをクリアするための試みです。

5
Visual Studioのビルドを非常に冗長にするにはどうすればよいですか?
Visual Studioバイナリによってビルドプロセスで使用されるすべてのフラグ、すべてのフラグを取得する必要があります。を使用して詳細な出力を取得しようとしましたが、vcbuildできませんでした。 Visual Studioによって実行されるすべてを確認するには、何をする必要がありますか?ビルドウィンドウで出力を取得する必要はありません。どこでも結構です。

8
Ant:ディレクトリ内の各ファイルに対してコマンドを実行する方法は?
ディレクトリ内の各ファイルに対して、Antビルドファイルからコマンドを実行したい。 プラットフォームに依存しないソリューションを探しています。 どうすればよいですか? もちろん、スクリプト言語でスクリプトを書くこともできますが、これによりプロジェクトにさらに依存関係が追加されます。

6
Maven 2では、どの依存関係から推移的な依存関係が発生するかをどのようにして知ることができますか?
私のpom.xmlに記述されている依存関係が、ターゲットディレクトリに一時的な依存関係をもたらすことを知りたいのですが。 もっと正確に言うと、WEB-INF / libディレクトリにライブラリ「poi-2.5.1-final-20040804.jar」があり、pom.xmlのどの依存関係がそれをもたらすのか知りたいのですが。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.