目次

このページについて

Xtextを使ってDSLを定義してみようと思いたったので、2013/06/28起点での導入過程や使ってみた感触などを覚書として残す。

準備

  • ここからEclipse Kepler 64bit版をダウンロード
  • 適当なパスにダウンロードしたEclipseを展開
  • 展開後Eclipse起動
  • メニュー→Help→Eclipse Marketplaceを選択
  • Find右のテキストボックスにtextを入力しEnterキーを押す
  • 検索結果が表示され、その一番上にXtextがあるはずなので、Installボタンを押す
  • インストール途中で、Security Warningがでた。Detailsボタンで表示される文字列を含めたメッセージは以下のとおり。が、構わずOKを押す。
Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue with the installation?
  X:\eclipse-kepler\plugins\de.itemis.xtext.antlr_2.0.0.v201108011202.jar
  X:\eclipse-kepler\plugins\org.antlr.generator_3.2.0.v201108011202.jar
  • Windows7からネットワークアクセス許可が出たのでそのままOKを押す
  • Eclipseから再起動するかと尋ねられるのでRestartを選択する

試す(5 Minutes Tutorial)

本家サイトの5分チュートリアルを参考にやってみる。

Creating A New Xtext Project

  • Menu -> File -> New -> Projectを選択
  • Xtext -> Xtext Projectを選択
  • Nextボタンを押す
  • New Xtext ProjectではデフォルトのままFinishを押す
    • あとでそれなりに作れるようになってきたらもっとオリジナリティあふれる名前をつけることにする
  • Problemsに5個のワーニングが出た。が、無視して続けてOK
Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.
Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.
Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.
The file "plugin.xml" does not exist in the workspace
The file "plugin.xml" does not exist in the workspace

Generating The Language Infrastructure

  • grammar editor*1で右クリック→Run As→Generate Xtext Artifactsを選択。コンソールに以下のメッセージが表示された。MyDsl.xtextと同列にあるGenerateMyDsl.mwe2で右クリック→Run As→MWE2 Workflowを選択しても同じ結果になるようだ。
0    [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Registering platform uri 'X:\My Projects\eclipse_kepler_workspace'
64   [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Adding generated EPackage 'org.eclipse.xtext.xbase.XbasePackage'
237  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/Xtext/Xbase/XAnnotations' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
240  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xtype' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
254  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xbase' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
254  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/common/JavaVMTypes' from 'platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel'
591  [main] INFO  ipse.emf.mwe.utils.DirectoryCleaner  - Cleaning X:\My Projects\eclipse_kepler_workspace\org.xtext.example.mydsl\..\org.xtext.example.mydsl\src-gen
592  [main] INFO  ipse.emf.mwe.utils.DirectoryCleaner  - Cleaning X:\My Projects\eclipse_kepler_workspace\org.xtext.example.mydsl\..\org.xtext.example.mydsl.ui\src-gen
592  [main] INFO  ipse.emf.mwe.utils.DirectoryCleaner  - Cleaning X:\My Projects\eclipse_kepler_workspace\org.xtext.example.mydsl\..\org.xtext.example.mydsl.tests\src-gen
715  [main] INFO  ipse.xtext.generator.LanguageConfig  - generating infrastructure for org.xtext.example.mydsl.MyDsl with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, EcoreGeneratorFragment, SerializerFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, ValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, GeneratorFragment, FormatterFragment, LabelProviderFragment, OutlineTreeProviderFragment, QuickOutlineFragment, QuickfixProviderFragment, ContentAssistFragment, XtextAntlrUiGeneratorFragment, Junit4Fragment, RefactorElementNameFragment, TypesGeneratorFragment, XbaseGeneratorFragment, CodetemplatesGeneratorFragment, CompareFragment
1832 [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.xtext.org/example/mydsl/MyDsl' from 'platform:/resource/org.xtext.example.mydsl/src-gen/org/xtext/example/mydsl/MyDsl.genmodel'
3785 [main] INFO  text.generator.junit.Junit4Fragment  - generating Junit4 Test support classes
3807 [main] INFO  text.generator.junit.Junit4Fragment  - generating Compare Framework infrastructure
4029 [main] INFO  .emf.mwe2.runtime.workflow.Workflow  - Done.
  • 生成されたArtifactsはPackage Explorerに現れる*2。現れたものは以下のとおり
org.xtext.example.mydsl.formatting
org.xtext.example.mydsl.generator
org.xtext.example.mydsl.scoping
org.xtext.example.mydsl.validation
  • Package Explorerのorg.xtext.example.mydslを選択し、Menu -> Run -> Run As -> Eclipse Applicationを選択*3

Try The Editor

  • 新しく起動したEclipseで、File -> New -> Project...を選択
  • Java Projectを選択し、Nextボタンをクリック
  • Project nameにはSampleを入力し、Finishをクリック
  • File -> New -> Fileをクリックし、フォルダパスはSample/srcを選択、File nameにSample.mydslを入力し、Finishをクリック
  • Do you want to add the Xtext nature to the project Sample?なるメッセージが表示されるので、Yesをクリック
  • Sample.mydslタブのエディタ領域で、Heまでタイプし、Ctrl+SpaceでHelloと補完されるのを確認する
  • 次いでWorld!までタイプし、警告が出なくなることを確認する
  • ウィンドウの×ボタンを押して新たに起動したEclipseを終了する

試す(15 Minutes Tutorial)

本家サイトの15分チュートリアルを参考にやってみる。
  • File -> New -> Project... -> Xtext -> Xtext projectをクリック
  • チュートリアルの例と同じproject name, name, extentionsを入力し、Finishをクリック。入力内容は以下
Main project name:	org.example.domainmodel
Language name:		org.example.domainmodel.Domainmodel
DSL-File extension:	dmodel
  • PackageExplorerび現れたプロジェクトは以下のとおりであることを確認する
org.xtext.example.mydsl.sdk
org.xtext.example.mydsl
org.xtext.example.mydsl.tests
org.xtext.example.mydsl.ui
  • Domainmodel.xtextタブにてModel...以下の行を以下のテキストで置換
Domainmodel :
  (elements += Type)*
;
  
Type:
  DataType | Entity
;
  
DataType:
  'datatype' name = ID
;
 
Entity:
  'entity' name = ID ('extends' superType = [Entity])? '{'
     (features += Feature)*
  '}'
;
 
Feature:
  (many ?= 'many')? name = ID ':' type = [Type]
;
  • 上記追記内容の1つにカーソルを合わせ、F3キーを押して定義位置にジャンプすることを確認する
    • ここではIDで試してみると、Terminals.xtextタブが開く*4ことを確認する。確認できたらタブを閉じていい
  • 生成物を作る
    • Package Explorerからorg.example.domainmodel -> src -> org.example.domainmodel -> GenerateDomainmode.mwe2で右クリック
    • Run As -> MWE2 Workflowを選択。Consoleに出てきたメッセージは以下
0    [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Registering platform uri 'X:\My Projects\eclipse_kepler_workspace'
67   [main] INFO  lipse.emf.mwe.utils.StandaloneSetup  - Adding generated EPackage 'org.eclipse.xtext.xbase.XbasePackage'
299  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/Xtext/Xbase/XAnnotations' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
302  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xtype' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
316  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xbase' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel'
316  [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.eclipse.org/xtext/common/JavaVMTypes' from 'platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel'
743  [main] INFO  ipse.emf.mwe.utils.DirectoryCleaner  - Cleaning X:\My Projects\eclipse_kepler_workspace\org.example.domainmodel\..\org.example.domainmodel\src-gen
743  [main] INFO  ipse.emf.mwe.utils.DirectoryCleaner  - Cleaning X:\My Projects\eclipse_kepler_workspace\org.example.domainmodel\..\org.example.domainmodel.ui\src-gen
744  [main] INFO  ipse.emf.mwe.utils.DirectoryCleaner  - Cleaning X:\My Projects\eclipse_kepler_workspace\org.example.domainmodel\..\org.example.domainmodel.tests\src-gen
886  [main] INFO  ipse.xtext.generator.LanguageConfig  - generating infrastructure for org.example.domainmodel.Domainmodel with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, EcoreGeneratorFragment, SerializerFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, ValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, GeneratorFragment, FormatterFragment, LabelProviderFragment, OutlineTreeProviderFragment, QuickOutlineFragment, QuickfixProviderFragment, ContentAssistFragment, XtextAntlrUiGeneratorFragment, Junit4Fragment, RefactorElementNameFragment, TypesGeneratorFragment, XbaseGeneratorFragment, CodetemplatesGeneratorFragment, CompareFragment
2225 [main] INFO  clipse.emf.mwe.utils.GenModelHelper  - Registered GenModel 'http://www.example.org/domainmodel/Domainmodel' from 'platform:/resource/org.example.domainmodel/src-gen/org/example/domainmodel/Domainmodel.genmodel'
4707 [main] INFO  text.generator.junit.Junit4Fragment  - generating Junit4 Test support classes
4726 [main] INFO  text.generator.junit.Junit4Fragment  - generating Compare Framework infrastructure
4926 [main] INFO  .emf.mwe2.runtime.workflow.Workflow  - Done.
  • 生成した成果物を起動するため、Package Explorerでorg.example.domainmodelを選択し、メニュー -> Run -> Run As -> Eclipse Applicationを選択
  • 新たに起動したEclipseでFile -> New -> Project...を選択
  • Java Projectを選択し、Nextボタンをクリック
  • Project nameにはSampleを入力し、Finishをクリック
  • File -> New -> Fileをクリックし、フォルダパスはSample/srcを選択、File nameにmymodel.dmodelを入力し、Finishをクリック
  • Do you want to add the Xtext nature to the project Sample?なるメッセージが表示されるので、Yesをクリック
  • チュートリアルの画面を真似て、mymodel.dmodelタブにて以下のコードを入力し、最終的に警告やエラーが出ないことを確認する。途中Ctrl+Spaceなどで候補を出したり、打ち間違えて警告を出すなどを確認するとなお良い
datatype String

entity Blog {
	title: String
	many posts: Post
}

entity HasAuthor{
	author: String
}

entity Post extends HasAuthor{
	title:String
	content:String
	many comments:Comment
}

entity Comment extends HasAuthor{
	content: String
}
  • 新たに起動したEclipseを終了し、元のEclipseに戻る
  • チュートリアルに従い、Domainmodel.xtextタブにてDomainmodel:の行以下を以下のように変更する
Domainmodel:
  (elements += AbstractElement)*
;
 
PackageDeclaration:
  'package' name = QualifiedName '{'
    (elements += AbstractElement)*
  '}'
;
 
AbstractElement:
  PackageDeclaration | Type | Import
;
 
QualifiedName:
  ID ('.' ID)*
;
 
Import:
  'import' importedNamespace = QualifiedNameWithWildcard
;
  
QualifiedNameWithWildcard:
  QualifiedName '.*'?
;
  
Type:
  DataType | Entity
;
  
DataType:
  'datatype' name=ID
;
 
Entity:
  'entity' name = ID 
              ('extends' superType = [Entity | QualifiedName])?
  '{'
    (features += Feature)*
  '}'
;
 
Feature:
  (many ?= 'many')? name = ID ':' type = [Type | QualifiedName]
;
  • 再度、生成物を作る
    • Package Explorerからorg.example.domainmodel -> src -> org.example.domainmodel -> GenerateDomainmode.mwe2で右クリック
  • 生成した成果物を起動するため、Package Explorerでorg.example.domainmodelを選択し、メニュー -> Run -> Run As -> Eclipse Applicationを選択
  • チュートリアルにならって、以下のファイルを作成する
datatypes.dmodel
commons.dmodel
blogs.dmodel
  • datatypes.dmodelタブにて以下の内容を入力する
datatype String
  • commons.dmodelタブにて以下の内容を入力する
package my.company.common {
  
  entity HasAuthor {
    author: String
  }
}
  • blogs.dmodelタブにて以下の内容を入力する
package my.company.blog {
  
  import my.company.common.*
    
  entity Blog {
    title: String
    many posts: Post
  }
  
  entity Post extends my.company.common.HasAuthor {
    title: String
    content: String
    many comments: Comment
  }
  
  entity Comment extends HasAuthor {
    content: String
  }
}
  • Outlineタブでクリックするなどして定義したものの階層関係をツリー形式で確認する

試す(15 Minutes Tutorial - Extended)

本家サイトの15分チュートリアル 延長を参考にやってみる。

Writing a Code Generator With Xtend

  • Eclipseを起動し、15分チュートリアルで作ったプロジェクトを開く(デフォルトで開いているかも)
  • Package Explorerからorg.example.domainmodel -> src -> org.example.domainmodel.generatorと辿り、DomainmodelGenerator.xtendをダブルクリック
  • エディタウィンドウにDomainmodelGenerator.xtendが開いたことを確認する。コメントを含む初期内容は以下のとおり
/*
 * generated by Xtext
 */
package org.example.domainmodel.generator

import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.xtext.generator.IGenerator
import org.eclipse.xtext.generator.IFileSystemAccess

/**
 * Generates code from your model files on save.
 * 
 * see http://www.eclipse.org/Xtext/documentation.html#TutorialCodeGeneration
 */
class DomainmodelGenerator implements IGenerator {
	
	override void doGenerate(Resource resource, IFileSystemAccess fsa) {
//		fsa.generateFile('greetings.txt', 'People to greet: ' + 
//			resource.allContents
//				.filter(typeof(Greeting))
//				.map[name]
//				.join(', '))
	}
}
  • これをチュートリアルにあるコードで置き換える。サンプルを示していないのは>を2つ重ねた記号を入力すると&**と表示され、意図通りの結果になっていないため
  • Run As -> Eclipse Applicationをクリック
  • 新しく起動したEclipseでProject -> Clean...を選択し、現れたダイアログでOKを押す*5
  • Package ExplorerのSampleの直下にsrc-genフォルダが生成されたこと、および、生成されたソースコードを開いて意図通りのソースコードが生成されたことを確認する。
  • 新しく起動したEclipseを終了する

Unit Testing the Language*6

冒頭に、
自動テストはソフトウェア製品の品質と保守性のために重要です。だからこそ、あまりにもあなたの言語用の単体テストを記述する強くお勧めします。Xtext プロジェクト ウィザードは、その目的のため、テスト プロジェクトを作成します。Junit4 の Eclipse 不可知論者テストと UI テストの両方のセットアップ手順を簡素化します。
とある*7
  • choose the src folder of the test plugin, and select New -> Xtend Class from the context menu.とあるが、Pachage Explorer -> org.example.domainmodel.testsで右クリックして、Xtendクラス作成に入る
  • Name欄は例にならってPerserTest、Package欄はデフォルト文字列を削除し空欄に、Source folder欄はそのままで、Finishを押す
  • 例には2つのソースが掲示されているものの、いずれも断片的にしか書かれていない。が、それらを寄せ集め、Eclipseが出すQuickFix?機能でエラーを適当にとったものが以下のコードになる
import org.eclipse.xtext.junit4.XtextRunner
import org.example.domainmodel.DomainmodelInjectorProvider
import org.eclipse.xtext.junit4.InjectWith
import org.junit.runner.RunWith

import org.eclipse.xtext.junit4.util.ParseHelper
import static org.junit.Assert.*
import org.junit.Test
import javax.inject.Inject
import org.example.domainmodel.domainmodel.Domainmodel
import org.example.domainmodel.domainmodel.Entity

@InjectWith(DomainmodelInjectorProvider)
@RunWith(XtextRunner)

class ParserTest {
	@Inject
	ParseHelper<Domainmodel> parser
	
	@Test 
	def void parseDomainmodel() {
	  val model = parser.parse(
	    "entity MyEntity {
	      parent: MyEntity
	    }")
	  val entity = model.elements.head as Entity
	  assertSame(entity, entity.features.head.type)
	}	
}
  • Package Explorer -> org.example.domainmode.tests -> src -> ParserTest.xtendで右クリックし、Run as -> Run Configurations ...を選択
    • 初めての場合は、Run Configurations ...しかコンテクストメニューに出てこないが、1回実行した以降は、コンテクストメニューにJUnitTestなどが現れるようになる
  • JUnit -> org.example.domainmodel.testsを選択し、Runボタンを押す
  • テストが実行され、結果が表示されるので確認する。Runs:1/1などと表示されている。成功したっぽいが、サンプル通りにやってみただけで、成功したのかそうでないのか区別がついていないが…。テストなのでparseに渡している文字列を変えてみると結果が変わるかも

Creating Custom Validation Rules

  • xtextのソースの一部を覗いてみて、制約の実現方法などを確認するだけのもので、学習のための作業らしい作業がなかった

編集中のメモ

→テストケースを書くのにXtendクラスを活用する、と記事にあるが、そもそも、なぜXtendクラスを指定したのか理由が分からない。Xtendクラスだとテストケースが書きやすいというのだろうか?
→テストコードで、parseに渡している文字列は今回定義しているDSLのフォーマットに則っているが、これをテストするとどういうことが検証できるのか。そこまで理解できていない
→おまじない的に使っているアノテーションもある

試す その4

  • このページからテキスト型DSL開発フレームワーク Xtext 入門のPDFをダウンロード
  • ひと通り読んだ結果、サンプルXtextプロジェクト紹介にもあるとおり、役立ちそうなものはGMF Integration Example(Xtext 1.0)とおもわれる。そこで、このサンプルプロジェクトとGMFの動作の仕組みを詳しく見ていくことにする
  • GMFのメモはここ

試す その5

アプリケーションの実行形態の目標は、Windows上で動作するアプリケーション、である。テキスト型DSL開発フレームワーク Xtext 入門のPDFを読んでいて、RCPを活用するのがもっとも手っ取り早いのではないかと思い、ネットの記事などを参考に検討してみることにした。
  • Setting up a RCP product for a Xtext DSL
    • Xtextで作ったテキストエディタをRCPにしている記事。書いてある手順通りにやるだけで良さそうである
  • Eclipse RCP
    • そもそもRCPって何のこと??と調べて出てきた良さそうな記事

まずは本命と目されるSetting up a RCP product for a Xtext DSLから試してみる。元記事が作成されてからだいぶ経っているため、現在確認のために使用しているEclipse Keplerにおいて
、RCPで使用すべきプラグインがかなり異なっていると思われる。元記事でリストアップされているプラグインでを参考に、Keplerでの置き換えを検討中である。
  • com.google.collectに代わり、com.google.guavaをAddしてみることにした
  • org.antlr.gnに代わり、org.antlr.generatorをAddしてみることにした。省略形がそうでなくなっただけなので間違いないだろう
  • org.aopallianceに代わるものが見つからない
  • org.eclipse.xsdも見当たらない
    • XMLスキーマのことだと思うが、それが何に変わったのか

→ダメだ。起動時にエラーになる。見よう見まねではKeplerにあった設定になっていないようだ。RCPを学んでから戻ってこよう
RCPの覚書

メモ

(以下の作業は、上記ワーニングを取ろうと思って実施したことだがワーニングを解消しなくてもアプリケーションが起動することは確認できたので、メモとして扱う)
  • Package Explorerにある、org.xtext.example.mydsl, tests, uiのそれぞれで以下を実施
    • 右クリック→Build Path→Configure Build Pathを選択
    • Java Build Path で、Libraries タブを選択
    • JRE System Library[J2SE-1.5] を選択し、Edit ボタンをクリック
    • JRE System Library の System library で、Workspace default JRE を選択し、Finish ボタンをクリック
    • Java Build Path に戻って、OK ボタンをクリック*8
(以下の作業による他への影響を理解しないまま実施しているため正しい作業かどうか検証が必要。あしからず)
  • Problemsウィンドウで以下を実施
    • The file "plugin.xml" does not exist in the workspaceダブルクリックし、問題箇所を表示
    • plugin.xmlを含む行を削除
  • 新たにProblemsに2個のワーニングが出た
The JRE container on the classpath is not a perfect match to the 'J2SE-1.5' execution environment	MANIFEST.MF	/org.xtext.example.mydsl.tests/META-INF	line 21	Plug-in Problem
The JRE container on the classpath is not a perfect match to the 'J2SE-1.5' execution environment	MANIFEST.MF	/org.xtext.example.mydsl.ui/META-INF	line 13	Plug-in Problem
  • JRE1.5の環境構築
    • OracleのページからJRE1.5をダウンロードし、インストール*9*10
    • Eclipse の Menu -> Windows -> Preferenceを選択
    • Java -> Installed JREsからADDをクリック
    • Standard VMを選択しNextをクリック
    • Directoryボタンを押し、先ほどインストールしたJREのフォルダを選択する
    • JRE Nameが自動入力されたことを確認したら、Finishをクリック
  • ワーニング消し実行*11*12。以下を作業をすべてのワーニングで実行する
    • Problemsでダブルクリックし問題の箇所にジャンプする
    • MANIFEST.MFの内部?タブが表示されるので、Overviewタブを選択する
    • Execution EnvironmentsでRemoveボタンでリストにある既存のものを削除する
    • Addボタンを押し、現れたウィンドウでJ2SE-1.5を選択し、OKを押す
→Run As -> Eclipse Applicationでエラーが出て動かない…。エラーメッセージは
java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM
→日を改めて実施。Run -> Run ConfigurationsでDefault JREをjre7としたところ、エラーなく動いた。設定を変えたら必ずOKを押してダイアログを閉じてなど踏まないとならない手順があるのかも。

メモ その2

Eclipseからアプリ起動時にConsoleに出てきたメッセージ。gitが関係しているみたいだがまだアクションは取っていない。内容を確認して対応するのでメモとしてとっておく
!SESSION 2013-07-15 21:49:50.614 -----------------------------------------------
eclipse.buildId=4.3.0.I20130605-2000
java.version=1.7.0_02
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ja_JP
Framework arguments:  -product org.eclipse.platform.ide
Command-line arguments:  -product org.eclipse.platform.ide -data X:\My Projects\eclipse_kepler_workspace/../runtime-New_configuration(2) -dev file:X:/My Projects/eclipse_kepler_workspace/.metadata/.plugins/org.eclipse.pde.core/New_configuration (2)/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog

!ENTRY org.eclipse.egit.ui 2 0 2013-07-15 21:50:13.241
!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level
Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory.
The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in
this system level configuration. The Git installation location can be configured on the
Team > Git > Configuration preference page's 'System Settings' tab.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

!ENTRY org.eclipse.egit.ui 2 0 2013-07-15 21:50:13.243
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\Hironobu'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます