プログラマメモ2 - programmer no memo2

java11 gaeのスタンダードエディションで その2 2020/07/27

前回の続き

うまくデプロイして動かすことができたので、次は最適化ということで、不要なjarファイルをwarから取る作業
webjarsは含めておこないとだめっぽいのでそれ以外←これはただしい?

参考)
[Apache Maven WAR Plugin – Including and Excluding Files From the WAR](https://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html)
            <!-- [START make-a-war_plugin] -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.1</version>
                <configuration>
                    <packagingExcludes>
                        WEB-INF/lib/asm*.jar,
                        WEB-INF/lib/jetty*.jar,
                        WEB-INF/lib/kuromoji*.jar,
                        WEB-INF/lib/javax*.jar,
                        WEB-INF/lib/jackson*.jar,
                        WEB-INF/lib/commons*.jar,
                        WEB-INF/lib/firebase*.jar,
                        WEB-INF/lib/slf4j*.jar,
                        WEB-INF/lib/classg*.jar,
                    </packagingExcludes>
                </configuration>
            </plugin>
            <!-- [END make-a-war_plugin] -->

インメモリで初期化を行います。そのときにRunscriptを使うサンプルです。 - H2 2014/08/30

H2です。
インメモリで初期化を行います。そのときにRunscriptを使うサンプルです。
URLに直接runscriptを指定していないのは、SQLファイルを置く場所を柔軟にコントロールしたいからです、例えばjar内部とか。


import java.io.IOException; import java.io.StringReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.commons.io.IOUtils; import org.h2.tools.RunScript; public class TestDb { public static Connection connection() throws SQLException, IOException { // DB_CLOSE_DELAY=-1をつけることでVM が生存している間接続OK String url = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;"; Connection connection = DriverManager.getConnection(url); String[] paths = { "/resources/create.sql", "/resources/populate.sql" }; for (String path : paths) { // お手軽にIOUtilsを使っている String cont = IOUtils.toString( TestDb.class.getResourceAsStream(path), "UTF-8"); RunScript.execute(connection, new StringReader(cont)); } return connection; } }

別メモ
通常のjavaのプロジェクトをmavenプロジェクトに変更して、必要なものがあれば、「pom xxxxxx」で検索すると、
Maven Repository: Search/Browse/Explore
がでてくるので、そこで必要なものライブラリのバージョンをからdependencyの内容をコピーして、pom.xmlに足してあげる。

maven-jar-pluginではaddMavenDescriptorを気にしよう! 2014/03/31

javaです。mavenです。

antを使っていろいろやってたのですが,依存jarの管理が大変なので、mavenをふたたびって感じになりました。

maven以外にもいろいろ候補はあるとは思うのですが、まあmavenでしばらくがんばってみようなかと思ってるところです。

いままでantでやってたことをmavenに移行していってる最中なのですが、学習コスト高いなーと思ってます。

で、maven-jar-pluginを使って、へえー便利!と思って解凍したら,pom.xmlが含まれていました。

まあ、別にいいかなーと思ったんですけど、そこんいkeysotreのpassとか入ってて、それもどうかなーということで、どうやって含めないようにするか。

 <addMavenDescriptor>false</addMavenDescriptor>

これが重要。

しかし、作成されたjarを解凍してチェックしてよかった。ツールとか大変便利なのですが、思わず事故ることもあるから確認はしっかりと。僕だけか....





eclipse maven2でcommons vfsを使えるようになるまで 2007/01/17
2007/01/23

(1)eclipseのプロジェクトを作っておく
(2)右クリックのmaven2からpom.xmlをつくっておく
(3)右クリックのmaven2から依存ライブラリを指定(add dependencyを使用する)する
vfsと入れれば、commonsのvfsをみつけてくれる。
自動的にダウンロードしてくれる。



あわせて他の依存ライブラリも登録しておく。
そんな感じで、
http://jakarta.apache.org/commons/vfs/download.html
ここにかいてあるライブラリを全部addします。

(4)mvn eclipse:eclipseを実行するとpom.xmlのライブラリをeclipseのプロジェクトに反映してくれます。
これは、eclipse上でpom.xmlを右クリックのコンテキストメニューのRunAsからmaven2 buildのGoalにeclipse:eclipseでもOK

mvn -DdownloadSources=true eclipse:eclipse
だとソースもattachしてくれます。
参考:http://www.techscore.com/tech/ApacheJakarta/Maven/6-2.html#maven-6-13

使えるライブラリ調査のためにもMaven 2006/12/23
2008/01/28

ブログや、ニュースサイトで紹介されたライブラリや、フレームワークをいろいろためしたいと思うのですが、導入環境を構築するのが手間だったりします。

はじめに、プロジェクトのWEBサイトにいき、バイナリー、ソース、javadocをダウンロード。
チュートリアルを眺めて、cutアンドcopyでeclipse上で実行しています。

案外、はじめのダウンロードが面倒だったりします。

mavenのレポジトリーサーチのサービスが便利そうです。

http://maven.ozacc.com/