ラベル devOps の投稿を表示しています。 すべての投稿を表示
ラベル devOps の投稿を表示しています。 すべての投稿を表示

2014/05/19

Vagrant 試し

★vagrant box add chef/centos-6.5 (url)
==>This will download the box named "chef/centos-6.5" from Vagrant Cloud,
a place where you can find and host boxes.
 While it is easiest to download boxes from Vagrant Cloud you can also add boxes from a local file, custom URL, etc.


★vagrant proxy
WIndows7 のシステム環境変数 http_proxy に proxy_host:proxy_port のフォーマットで設定すればよいようです。
https_proxy   proxy_host:proxy_port

vagrant init
vagrant up

★仮想マシンに接続する
vagrant ssh
vagrant status
vagrant halt
vagrant destory {name}


★ターミナルで接続する方法
例えばTeraTermとかで接続したいとき。
vagrant initした際に作成されたVagrantfileのconfig.vm.networkを下記のように設定。
(コメントアウトされてるのでそれを有効にすればよい。)

config.vm.network :private_network, ip: "192.168.33.10"

これでターミナルから「192.168.33.10」でsshできる。
ユーザとパスワードは「vagrant」。rootになるにはノンパスで「sudo -s」。
これは「ホストオンリーネットワーク」といって、ホストOSからしかゲストOSへアクセスできない。
VirtualBoxでいうと「ホストオンリーアダプター」を設定していることになる。
※「:hostonly」って書き方もあるが、古いらしい。
他にも以下のようなネットーワーク設定が可能。

chef install

chef-soloでstandalone型の物を試す:

・yum install ruby ruby-devel rubygems make gcc
・sudo curl -L https://www.opscode.com/chef/install.sh | sudo bash

mkdir -p chef-repo/cookbooks
cd chef-repo/cookbooks
knife cookbook create setup-user -o .
-o .==>output を今のところにする

2014/05/13

CentOS ant インストール

★バイナリ形式のtar.gzファイルをダウンロードし
★環境変数を設定する
touch /etc/profile.d/ant.sh
=->export ANT_HOME=".."
  export PATH="$PATH:ANT_HOME/bin"
★拡張jarを全て ANT_HOME/libの下に入れる

yum方式やめる方がいい

2014/05/07

ant

★ant
ant -buildfile test.xml
ant -buildfile test.xml dist
ant -buildfile test.xml -Dbuild=build/classes dist
-->buildFileをtest.xmlを使う。タスクをdistにする。
 build属性を「build/classes」にする
 
★java言語を使って、新たな機能を追加できる。

★build.xml、eclipseで書く方が楽。

★platform間の溝を埋めるために作った。
=ー>実行できない。。

これだけ、後は使う時調べる。

maven 入門

mvn archetype:generate
->generate project in Interactive mode
・アーキタイプを指定する
=>
デフォルトが203(org.apache.maven.archetypes:maven-archetype-quickstart)になっているので、それを選んでみる
・versionを指定する
・groupIdを指定する
==>これは、何をやっている?
シンプルなクラスつくてくれた。。。。
ーー>test1を作る!

★Mavenでは「リポジトリー」という場所でアーカイブ(jarファイルやソースファイル等)を保管しておき、Mavenで管理された各アプリケーションではそれを参照する。
リポジトリーには「リモートリポジトリー」と「ローカルリポジトリー」がある。
リモートリポジトリーはインターネット上で公開されているリポジトリーで、ローカルリポジトリーは自分のマシン上に(自動的に)構築されたリポジトリー。
Mavenではpom.xmlにアプリケーションが依存(使用)するライブラリーを記述する。
Mavenのコマンドを実行すると、その依存関係に従ってリモートリポジトリーからライブラリー(アーカイブ)をダウンロードしてローカルリポジトリーに格納する。
そして、各アプリケーションはローカルリポジトリー内のファイルを参照して処理を行う。
(例えばローカルリポジトリー内のjarファイルをクラスパスに追加してアプリケーションをコンパイルしたり実行したりする)
==ー>リポジトリー?

★Mavenでは、mvnコマンドのオプションとして「ゴール」を指定して実行する
mvn ゴール 例:clean/test/install:install-file
「プラグイン名:」でプラグイン特有のゴールを指定できる。
http://maven.apache.org/plugins/index.html
いろいろできようね。。
全体像をつかまない。。。。


★プロジェクトをビルドする
cd test1
mvn package
==>bulid,compile,run testClass,
テスト結果が作成される、jarファイルも作成された!!
いろいろやってくれありがとうございます!
※packageはgoalではなく、phaseである。
プロジェクトのlifeCycleでいろんなphaseがある。package前のphaseは全て実行される。
(package?jarファイルを作成すること?)
validate
compile
test
package
intergration-test
verfify
install
deploy
clean
site
------
phaseの下goalがあるの感じ。ディフォルトのgoalもある!


★pom.xml
・下記の座標でプロジェクトを管理する
groupId-->URL/Package
artifactId-->そのグループ中のID
version-->
name-->必須ではない
プロジェクト管理なので、実際のCodeと関係がない。
pomで管理対象を設定するので、pomを修正すれば良い。

★eclipseに導入。。。

mvn eclipse:eclipse
==>windowsでuserのディレクトリの下で、権限の問題でいろいろうまくいかない!!
Cではなく、別のところにしよう。。

★echo %M2_HOME%
=>windowsで

★====>必要な時、plugInを検索して使う。

Why maven



Why maven?
除了写源代,我每天有相当一部分时间花在了编译、运行测试、生成文档、打包和部署等烦琐且不起眼的工作上,是构建
一直在不停地找避免重复的方法。设计的重复、编码的重复、文档的重复,
当然有构建的重复。Maven最大化地消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任提供了已实现的插件,我不再需要定义过程,甚至不需要再去实现这程中的一些任
简单的例子是测试,我没必要告Maven测试,更不需要告Maven如何运行测试,只需要遵循Maven写好测试用例,当我运行构建的候,测试便会自运行

个开源的年代里,几乎任何Java用都会借用一些第三方的开源类库类库都可通的方式引入到目中来。随着依的增多,版本不一致、版本冲突、依问题都会接踵而来。手工解决问题是十分枯燥的,幸运的是Maven提供了一个秀的解决方案,它通一个坐准确地定位每一个构件(artifact),也就是通Maven找到任何一个Java类库(如jar文件)。Maven给这类库世界引入了经纬们变得有秩序,于是我可以借助它来有序地管理依松地解决那些繁的依赖问题

只要定位了坐Maven就能帮我,省去了手工劳动
★これみたいな物!
使用脚本建立高度自定的构建系就像买组PC,耗时费力,果也不一定很好。当然,你可以享受从无到有的趣,但恐怕实际项目中无法你那么多时间。使用Maven就像购买品牌PC,省省力,并能得到成熟的构建系能得到来自于Maven社区的大量支持。

MAVEN VS IDE
IDE能大大提高开效率。当前主流的IDEEclipseNetBeans等都提供了大的文本编辑调试甚至重构功能。然使用简单的文本编辑器和命令行也能完成大部分开工作,但很少有人愿意那做。然而,IDE是有其天生缺陷的: 
 IDE大量的手工操作。编译测试、代生成等工作都是相互独立的,很
完成所有工作。手工劳动往往意味着低效,意味着容易出   
目中一所有的IDE配置,每个人都有自己的喜好。也正是由于个原因,一个在机器A上可以成功运行的任,到了机器BIDE中可能就会失 
们应该合理利用IDE,而不是多地依它。于构建这样的任,在IDE中一次次地点是愚蠢的行Maven方面的家,而且主流IDE都集成了Maven


MAVEN VS ANT
MakeAnt也都是程式的,开式地指定每一个目,以及完成所需要行的任针对每一个目,开者都需要重新程,里其实隐含着很大的重复。Maven是声明式的,目构建程和程各个段所需的工作都由插件实现,并且大部分插件都是成的,开者只需要声明目的基本元素,Maven行内置的、完整的构建程。在很大程度上消除了重复。 
Ant是没有依管理的,所以很一段时间Ant都不得不手工管理依是一个令人疼的问题。幸运的是,Ant户现在可以借助Ivy管理依。而Maven,依管理是理所当然的,Maven内置了依管理,更有一个可能有全世界最多Java开源件包的中央仓库Maven须进行任何配置就可以直接享用

Maven真比自己的“范化Ant”大?其他不知道自己只是在重新子,Maven有一大把成的插件,全世界都在用,你自己不用写任何代 什么没有人“我自己写的代最灵活,所以我不用Spring,我自己实现IoC;我不用Hibernate,我自己封装JDBC”

2013/09/16

ant copy exclude folder ,if not exists

<copy todir="${remployDeploy}">
            <fileset dir="${deploy}">
                <include name="**" />
                <exclude name="logs/**" />
                <exclude name="db/**" />
            </fileset>
        </copy>


<condition property="hasToCreateDb">
            <not>
                <available file="${remployDeploy}/db" type="dir" />
            </not>
        </condition>

        <antcall target="copyDbDir" />    
==>

<target name="copyDbDir" unless="${hasToCreateDb}">
        <copy todir="${remployDeploy}/db">
            <fileset dir="db" />
        </copy>
   </target>



2013/09/12

ant jar

<jar basedir="${bin}" jarfile="${deploy}/HelpYou.jar">
            <manifest>
                <attribute name="Main-Class" value="com.syuu.automic.MainWindow" />
            </manifest>
  </jar>
jarファイルをまとめて、一つにする
<zipgroupfileset dir="libs" includes="**/*.jar" />