2015年10月12日月曜日

ちょこっとpomメモ

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sample</groupId>
<artifactId>sample</artifactId>
<version>0.0.1-SNAPSHOT</version>

<properties>
<java.version>1.7</java.version>
<encoding>UTF-8</encoding>
</properties>

<build>

<!-- リソース定義 -->
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/gen-resources</directory>
</resource>
</resources>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${encoding}</encoding>
</configuration>
</plugin>

<!-- ソースディレクトリを設定 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/gen-java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>

<!-- CheckStyle -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.16</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<!-- チェックルールのパスを指定 -->
<configLocation>config/checkstyle/sun_checks.xml</configLocation>
<!-- 静的解析にて警告が見つかった場合にビルド失敗とするかどうか -->
<failOnViolation>false</failOnViolation>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>

<!-- FindBugs -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>process-classes</id>
<phase>process-classes</phase>
<configuration>
<xmlOutput>true</xmlOutput>
<failOnError>false</failOnError>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>

<!-- PMD -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.5</version>
<executions>
<execution>
<id>process-classes</id>
<phase>process-classes</phase>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<minimumTokens>100</minimumTokens>
<targetJdk>1.7</targetJdk>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>


</plugins>
</build>

<!-- 環境プロファイル定義 -->
<profiles>
<!-- 単体試験環境 -->
<profile>
<id>ut1</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<resources>
<resource>
<directory>src/main/sg-resources/ut1</directory>
</resource>
</resources>
</build>
</profile>
<!-- 単体試験環境2 -->
<profile>
<id>ut2</id>
<build>
<resources>
<resource>
<directory>src/main/sg-resources/ut2</directory>
</resource>
</resources>
</build>
</profile>
<!-- 結合試験環境 -->
<profile>
<id>SI</id>
<build>
<resources>
<resource>
<directory>src/main/sg-resources/si</directory>
</resource>
</resources>
</build>
</profile>
<!-- 総合試験環境 -->
<profile>
<id>IT</id>
<build>
<resources>
<resource>
<directory>src/main/sg-resources/it</directory>
</resource>
</resources>
</build>
</profile>
<!-- ステージング環境 -->
<profile>
<id>ST</id>
<build>
<resources>
<resource>
<directory>src/main/sg-resources/st</directory>
</resource>
</resources>
</build>
</profile>

</profiles>

<!-- レポート定義 -->
<!-- <reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> 
<artifactId>findbugs-maven-plugin</artifactId> <version>3.0.0</version> <configuration> 
<visitors>FindDeadLocalStores,UnreadFields</visitors> </configuration> </plugin> 
</plugins> </reporting> -->


</project>drふぇ

2015年8月24日月曜日

インフラ関連のスキル不足

僕はアプリケーションのエンジニアであるので、インフラ関連には全く疎い。
少し前に要件定義を行う業務に携わることがあった。
下請け業者で働く僕はあまり経験がなく、新鮮だった。

要件定義は、僕がやってきたような「よし、仕様決めてプログラム作るぜ!」というような段階でないことは当たり前だが、僕のようなアプリケーションのエンジニアの出番があまりないのだな。と感じた。

出番がないというのは間違った言い回しかもしれないが、
どちらかというと、本当に役に立ちそうな工程はもう少し後だなと感じた。
一方、真逆の事を言うようだが上流工程からアプリケーションのエンジニアがいた方がいいなと感じる部分も多々あった。

ちょっと話題がずれてるから立て直す。。。。
最初に表題を書いたときに言いたかったことは、インフラ関連の知識が僕に不足しているということ。

「あ、そう、がんばれよ!」と言う声が聞こえてきそうだが、ここには届かない。
結局要件定義の非機能要求の部分(いわゆるシステムが動作するアーキティクチャとか)ではインフラ関連の話題がとても多い。当たり前か。。。。

WEBサーバーはこれ、
アプリケーションサーバーはこれ、
ロードバランサはこれ、
データベースはこれ、
ジョブスケジューラはこれ、
ログ関連の規約はこうする、
構成管理はこうする、
試験環境、ステージング環境、本番環境はこうする、
etc...

最初に書いている方は、割と自分でも話に混じったりできるのだが、
あとになってくると辛いものがあった。。。
単純に悔しいのと、自分でもどうにかできるようになりたいのと、
「僕はアプリケーションのエンジニアであるので、インフラ関連には全く疎い。」
とかいうのはダサいので勉強しなきゃな。。。。

世の中のアプリケーションエンジニアはみんなどうしているのだろう。。。

僕は割とでかいプロジェクトばっかり回ってるからなのか。
今までアプリケーションの勉強ばかりしてきてしまった感がある。(興味本位でちょいちょいVPSとか触ってる程度)
規模が小さい開発は全てやらなきゃいけないから力が付くよと言われた理由はこの辺りにあるのかな。







2015年5月17日日曜日

Mac上のMavenでみているJavaのバージョンがおかしい。。。

何きっかけでおかしくなったのかわからないが、、、
「mvn -v」とかでみるとJavaのバージョンがおかしくなってた。
今入れているJavaは1.8のはずが、なぜか1.6とかになってる。

いろいろググったが、mvnコマンド実行する前にexportしろ的なことしか
なさそうに思えた。僕は面倒なのでできればそれをやりたくない。

「mvn -v」を実行すると、MavenHomeなるものが見える。
どうやら、「/usr/local/Cellar/maven31/3.1.1/libexec/bin」っぽい。

そこに、どう見ても実行ファイルっぽい「mvn」があったんで
そこの中を修正して強制的に1.8を見せることにした。
すごく適当なメモだが、以下のような感じ

 83 
 84 export JAVA_HOME=`/usr/libexec/java_home`
 85 
 86 if [ -z "$JAVA_HOME" ] ; then
 87   if [ -r /etc/gentoo-release ] ; then
 88     JAVA_HOME=`java-config --jre-home`
 89   fi

 90 fi


とりあえず、忘れないようにメモしただけ…