Created
October 23, 2014 02:43
-
-
Save adityasatrio/13fc4fd00cba959ec6a3 to your computer and use it in GitHub Desktop.
catatan diskusi maven - ant - gradle
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
http://software.endy.muhardin.com/java/development-stack-2014/ | |
Quote: | |
Kenapa tidak pakai EJB? Kan sudah tersedia di application server JEE sehingga tidak perlu tambahan JAR? | |
Dengan Spring Framework, aplikasi bisa dideploy di application server mana saja. Bisa Tomcat, Jetty, Heroku, Google App Engine, dan sebagainya. Requirement yang dibutuhkan hanyalah Java VM saja. | |
ans: | |
Nah ini, Kenapa dia bilang seolah-olah EJB gak bisa dideploy dimana aja? EJB bisa jalan di Jetty, Tomcat, asalkan container EJB-nya juga bisa di-setup untuk jalan di minimal web server seperti Tomcat. | |
EJB sendiri naturenya close to metal di sisi J2EE, malah gak butuh HTTP server. Ane pake console udah bisa bikin EJB yang bisa RMI. | |
Waduuhh.... | |
Udah ada banyak video dari Oracle yang ngebahas EJB yang dijadikan studi kasus seperti IRC yang jalan di command prompt/console! | |
Maven dijadikan build tools? Hmmm... Padahal Maven itu dependency/library management. Kenapa dia gak pake Ant? Terus dijalanin di CI server seperti Jenkins? | |
--------------------------- | |
Quote: | |
Ini mungkin maksudnya dia nga mau setup container lagi kali ya, install app server, deploy, running | |
ans: | |
Nah, harusnya dia belajar dulu full stack Java EE dan GlassFish secara barebone (gak pake container dependency). Kalo cuma sekedar install app server terus deploy, lalu running, ya gimana ente maintain state object? gimana ente mau persistence? gimana ente maintain workflow object yang compliant BPEL/BPMN nantinya? | |
Balik lagi ke EJB pastinya. Jangan lupa, EJB juga bisa persistence ignorance seperti Hibernate. Ente yakin, aplikasinya gak bakalan sampe ke level dimana dia harus maintain state, apalagi seperti workflow object yang harus bisa versioning on the fly dan kalo perlu jalan bolak-balik ke database untuk simpen statenya. | |
Quote: | |
Alternatifnya apa om? yang free gitu, ane sih belum pernah pakai tuh trello | |
ans : | |
Alternatifnya? ane pake yang ini contohnya: http://agilefant.com/ | |
Quote: | |
Kalau antnya dipanggil di dalam maven bagaimana om? Di kantor ane yang lama cara buildnya seperti itu | |
ans : | |
ant dengan maven itu tujuannya beda. ente memang bisa build dengan maven tapi fokusnya ya dependency management. POM ente kan gak bisa dicustomize seperti Ant, kan? Karena tujuannya bukan itu, | |
Ente bisa kombinasikan Maven dan Ant dengan Jenkins, agar ente bisa punya Continuous Integration yang sederhana. | |
Ingat, seberapa dekatkah tempat kerja ente dengan 12 Joel test? Kalo dia cuma cerita Maven, ya masih jauh dari CI. | |
----------------------- | |
Quote: | |
trello emg sperti virtual board buat sticky note, lbh ke tools buat mendukung project management, buat dukung scrum bisa tp terbatas | |
klo maven bukan termasuk build tools ya, selama ini soal nya pake maven, apa mungkin pemahan ane y salah source , mohon pencerahan | |
ans : | |
Maven BUKAN build tool. | |
Lihat di website Maven: | |
Quote: | |
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. | |
Liat yang ane bold. Dia manage build, bukan build toolnya itu sendiri. Dan Maven lebih kuat di repository management, untuk manage library-library terutama jar-jar external yang dibutuhkan di satu project app. Ente butuh Spring? Hibernate? supaya repo centralize, serahin aja ke Maven, | |
Lalu untuk build, ane tetep butuh build tool seperti Apache ANT. | |
Ini di website Ant: | |
Quote: | |
Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks. | |
Jelas kan bedanya? | |
Kalo di .NET, Maven == Nuget. Ant == MSBuild. | |
------------------ | |
Quote: | |
Original Posted By wuruwuru ► | |
ane nangkapnya ente mengatakan maven ga bisa dicustomize utk melakukan hal2 diluar compile/build dan dependency management, contoh: copy file ketika ngebuild. | |
Mungkin ane yg salah tangkap dgn pernyataan om, mohon pencerahannya kalo emang demikian | |
ans: | |
Ente lihat disana, dia butuh plugin yang ngejalanin Ant pula untuk intercept process di tengah-tengah build. | |
Dan Maven hanya bagus sebagai centralized repo dengan model Configuration. | |
Sedangkan Ant bisa Convention over Configuration. Makanya Ant bisa paralel build, gated build, dan deferred build. Maven tetep gak bisa, dan kalo dipaksakan pake Maven Ant plugin, akhirnya bleeding, | |
Coba ente liat contoh2 kasus di forum Maven. | |
---------- | |
note : | |
paralel build : maven 3 = https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3 | |
deferred build = https://code.google.com/p/maven-deferred-deploy-plugin/ | |
-------------- | |
Quote: | |
Original Posted By crimson.code ► | |
lebih tepatnya ant dan maven itu "automated build tool" | |
cuma bedanya kalau maven itu punya default structure yang disepakati (convention)... | |
dan mengelola dependensi juga | |
sementara ant ente harus targetin secara manual dimana target foldernya | |
ente bisa ngebuild code java secara manual | |
compile ini dan itu sendiri | |
ketika ada code berubah (termasuk test file), ente compile manual lagi, begitu seterusnya... kemudian jalanin test juga manual, entah pake testing framework apaan | |
apache ant kemudian hadir dari Project Jakarta (jaman dulu) untuk membantu dalam mengotomatisasi proses proses manual tsb... | |
apache maven kemudian (dari Project Jakarta juga) memberikan solusi yang sama tapi lumayan mempermudah, di mana struktur project yang ente kerjain sudah disepakati (convention), dan juga mengatur dependensi project | |
ans (me) : | |
maven , build nya berdasarkan lifecycle nya dia aja, convention standard maven. | |
ant build nya bs lebih fleksibel karena bisa manual di buat oleh si dev alur nya dan u/ dependensi ada ivy. | |
yang gw tangkep and pahami sih itu. | |
-------------------------- | |
Quote: | |
Original Posted By overheated ► | |
kenapa ya pembahasan gini tengah malem gw kan jd ga bs tdr hehe :linux2 | |
klo paralel build sperti nya bisa pake maven 3 : source , dan klo defered build ada plugin dr orang yang berbaik hati , klo gate build itu apa ya om ? | |
dan iya sperti nya ant lebih fleksibel d banding maven, sering dengar jg maven byk issue nya, mungkin karena om eri sering menangani project yang scope nya besar mk nya banyak hal2 unik yang sy pribadi belum pernah denger | |
klo gradle gmn om eri ? sudah pernah coba kah, krn trend nya cenderung yang biasa pakai maven pindah ke gradle. | |
ans : | |
Gradle bagus. sepertinya untuk repository management dia lemah. | |
Contoh gampang gated build: http://blogs.msdn.com/b/patcarna/arc...-check-in.aspx | |
Tapi ingat, TFS 2013 featurenya sudah sama dengan Jenkins dan support Git juga. | |
contoh yang lebih kompleks gated build, ente bisa pake Gerrit untuk dideploy di Jenkins. Dan Gerrit juga didukung Eclipse dan Atlassian, | |
Silakan liat di: https://code.google.com/p/gerrit/ | |
--------------- | |
Quote: | |
Original Posted By pekoy154 ► | |
Pembahasan seru, bikin gw yg udah siap2 tidur jadi excited, dan langsung login kaskus via handphone | |
Oke, issue awalnya adalah stack versi endy 2014 yg dianggap ngga ideal oleh om erri | |
Harus digarisbawahi dulu disini adalah background kedua orang tsb ngga sama | |
Yang satu dulu developer, sekarang pm mangkanya cari stack mana yg cepet, gimana caranya yg penting learning curve rendah sehingga junior freshgrad ingusan bisa langsung produktif modal diajarin seminggu doang. | |
Sedangkan om erri, lebih scientific. Tipe idealis yang semua layer harus sesuai dengan mazhab pattern gang of four. | |
Ga ada yg bener, ga ada yg salah. Just a different point of view aja. | |
Dah ah gw mandi dulu, abis disemprot indiahe seharian awkaekakw | |
ans: | |
Ane juga developer sampe sekarang, gan... | |
Gak semuanya harus sesuai dengan mazhab GoF. Kalo dipaksain harus sesuai GoF, bisa-bisa nanti malah bad smell seperti shotgun surgery atau bleeding inheritance. | |
Idealis, mungkin iya. Yang ane tekankan sisi pragmatisnya di banyak perusahaan. Ane memang banyak tenggelam di .NET, tapi Java ane masih mengikuti. | |
============== rada OOT... | |
Curhat dikit, ane masih ikuti Java karena ane belajar OOP di Java setelah ane kuasain Smalltalk di taon 1999 dan waktu .NET itu belum ada. Jamannya keemasan Java applet.. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment