2014-01-09 10 views
5

私はantからgradleに既存のプロジェクトを移動しようとしています。私はIntellij 13を使用しています.Imlファイルを削除することで、gradleの下で1つのモジュールを実行することができました。しかし、モジュール名ではなくディレクトリ名と一致する名前を持つimlファイルの作成を主張しています。Intellij&Gradleモジュールのファイル名

これはおそらく、単独で働いている人や、IDEとバージョンが高いところから引き渡されている大企業の1人のチームでは問題ではないことを認識しています。しかし、このプロジェクトには、それぞれが独自のIDEを提供しているいくつかの企業の様々な請負業者が関わっています。 Intellijのライセンスモデルでは、ほとんどの作業がサイト外で行われるため、IDEを外部の請負業者に供給することは実際的ではなく、ライセンスキーを返却するとライセンスキーを取り消したり、承認を取り消すことはできません。

のIntelliJは無料ではありませんアップグレードするので、それが一度にアップグレードするために皆を調整することはほぼ不可能だと私はourproject.ij12.ipr1ourproject.ij13.iprという名前の別の名前のプロジェクトファイルと内のモジュールのためのIMLファイルで、ファイルベースのプロジェクト形式を使用しますディレクトリfooこれは素晴らしい作品、およびポリシーは14我々は行くのバージョンの無限の数を取得しないように、12のオフに取得するために出てくるまで、誰もが持っているが、我々が持っていないということですfoo.ij12.imlfoo.ij13.iml

です私たちのアップグレードにもナノ秒を同期させることができます。

残念ながら、intellijのfooディレクトリにあるbuild.gradleを使用しようとすると、黙示的な規則を完全に破るfoo.imlと書いています。さらに、それは別のモジュールを(質問しないで)追加し、同じディレクトリ内の2つのモジュールにつながり、同じディレクトリ内の2つのモジュールがエラーであるため、どちらも変更できません。

gradleを使用しているときにIntellijがimlファイルに書き込むファイル名にどのように影響を与えるか教えてもらえますか?私はsymlinksとant.symlinksタスクで非常に精巧になっていなければ、明らかに別のディレクトリ名を持っているわけではありません。誰かがWindows上でネイティブにそれを実行しようとすると動作しません。

編集:人は受け入れられない回答を削除する傾向があるようですので、私に明示してください。私は、グラデルアイデアのEclipseプラグインを認識しています。私はIDEの無関心のガイドを求めていません。私はIDEの設定に価値のあるものがあり、同じIDE(「同じ」にはバージョンが含まれ、クロスバージョンの共有は想定されていませんが、一度に複数のバージョンがあります)を使用して他のユーザーと共有したいと考えています。

  • 私はIDEファイルの2つのバージョンを維持するために、IMLファイル
  • 別の方法のファイル名を制御することを可能にする構成やトリック:

    は、私はこれらのいずれかを探しています。具体的には、それはあまりにもビザンチンではありません。
  • IDEAで私の目標を達成する方法がなくなったということに参加しているJetBrainsの皆さんからの確認。

EDIT2:ファイルをグラデーションで生成するソリューションは動作しません。 Intellij 13 ディレクトリ名と一致するファイル名を変更します。モジュール名ではなく、問題の原因となります。私は確信する解決策が必要ですIntellijそれをすることはできません。 私は13にアップグレードする前に問題はありませんでした。

+0

で構成用のスクリーンショットを参照してください。 com/questions/7060727/intellij-idea-project-files-how-to-deal-with-intelij-idea-source-control-http://devnet.jetbrains.com/message/5245457、http:// devnet.jetbrains.com/thread/279596?tstart=0 –

+0

良いものだが、私の実際の問題に対処しているようだ(何かが逃していない限り)。 – Gus

答えて

3

アイデアのプラグインを使用して、コマンドラインパラメータに基づいて2つのimlファイルを生成することができました。ここで私はこのスクリプトは、デフォルトではあなたのために「13」のファイルを生成します

apply plugin: 'java' 
apply plugin: 'idea' 

def imlName = name + (hasProperty('generate12') ? '.ij12' : '.ij13') 

idea { 
    module { 
    name = imlName 
    } 
} 

を作成した(最小限)build.gradleファイルです。したがって、それを変更するには、generate12プロパティを設定する必要があります。

コマンドは、私が走った:

> gradle idea 
> gradle idea -Pgenerate12=true 
> ls 
    build.gradle test.ij12.iml test.ij13.iml test.ipr test.iws 

idea moduleドキュメントはあなたのためにいくつかのより便利なものを持っているかもしれません。

サイドノート: 私はあなたがすべての人にIMLファイルせずにプロジェクトを与え、ファイルが作成されるようにする(カスタムIML名のものなし)gradle ideaを実行するために、彼らに言った場合、それが最善だと思います。これにより、IntelliJによって変更され上書きされるファイルを管理する必要がなくなります。私たちはimlファイルをチェックインします。誰かが何かをチェックしてみんなが壊れてしまうと、何も問題はありません。

+0

興味深いですが、ファイル名がポイントではありません。重要な点は、機能と設定が12のファイルと、機能と設定が13のファイルです。提案されたソリューションでは、生成された2つのファイルに違いはありません。また、test.ij12.iprとtest.ij13.iprも必要であることに注意してください。そして、私の経験では、最初にtest.ij13という名前のファイルを読み込んでも、intellij 13はモジュール用のtest.imlの書き込みを開始しますテストディレクトリにあります。私はintellijの内部に解決策が必要です。そうしないと、外部の解決策が取り除かれます。 – Gus

+0

プロジェクトファイル(12または13)を開いたときに、名前が正しいファイルが開くように、intellij構成のみを使用して、複数のプロジェクトファイル(iml、iprなど)を1つのディレクトリに格納する方法を知りたいですか? – Ethan

+0

私は実際にファイルがどこから来たかは気にしませんが、問題はファイルを再命名するintellijにあります。グラデーションタグについては、解決策にはグラデルコードが含まれていないかもしれませんが、**この質問は**に関係しており、グラデルに関連しています。 – Gus

2

settings.gradleファイルを使用してモジュール名を変更します。 Intellijはそれを使用する必要があります。 次に、gradle.propertiesを使用して接頭辞を設定できます。

など。 // stackoverflowのを: - setting.gradle:

rootProject.name = adjustName("ourproject") 

include "someProject" 
// ... other includes 

rootProject.children.each{ it.name=adjustName(it.name)} 

String adjustName(String name) { 
    String pref = System.properties['myIdeaVersionPrefix'] 
    return pref != null ? name + "." + pref : name 
} 

gradle.properties> HTTP

systemProp.myIdeaVersionPrefix=ij13 

は、それが助け場合は、以下のウェブサイトはより多くの情報を持っているhttp://i.stack.imgur.com/CH2Bv.png

関連する問題