4Developers 2015: Why should you learn to program c64 this year - Michal Taszycki
Simplify your external dependency...
Transcript of Simplify your external dependency...
![Page 1: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/1.jpg)
Simplify your external dependency management
Stephan Hochdörfer, bitExpert AG
![Page 2: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/2.jpg)
Simplify your ext. Dependency Management
About me
Stephan Hochdörfer, bitExpert AG
Department Manager Research Labs
enjoying PHP (and a little bit of Java) since 1999
@shochdoerfer
![Page 3: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/3.jpg)
Simplify your ext. dependency management
Dependencies?
![Page 4: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/4.jpg)
Simplify your ext. dependency management
Dependencies?
internal externalDependencies Dependencies
![Page 5: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/5.jpg)
Simplify your ext. dependency management
What are external dependencies?
![Page 6: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/6.jpg)
Simplify your ext. dependency management
Anything your application requires to run...
What are external dependencies?
![Page 7: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/7.jpg)
Simplify your ext. dependency management
What are external dependencies?
Extensions, Systemtools, PHP Libs
![Page 8: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/8.jpg)
Simplify your ext. dependency management
Our first project....
![Page 9: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/9.jpg)
Simplify your ext. dependency management
Our first project....
+
![Page 10: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/10.jpg)
Simplify your ext. dependency management
Our first project – the structure
yourpoject |-application |-library |---Facebook |---Zend |-public |---js |---css |-tests
![Page 11: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/11.jpg)
Simplify your ext. dependency management
And some more projects...
yourpoject |-application |-library |---Facebook |---Zend |-public |---js |---css |-tests
yourpoject2 |-application |-library |---Zend |-public |---js |---css |-tests
![Page 12: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/12.jpg)
Maintenance nightmare!
Simplify your ext. dependency management
![Page 13: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/13.jpg)
Simplify your ext. dependency management
First try...
Let`s use what we already have...
![Page 14: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/14.jpg)
Simplify your ext. dependency management
First try...
...our version control system!
![Page 15: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/15.jpg)
Simplify your ext. dependency management
First try...
For Subversion users: SVN externals
![Page 16: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/16.jpg)
Simplify your ext. dependency management
First try – SVN externals
yourpoject |-application |-library |---Facebook |---Zend |-public |---js |---css |-tests
![Page 17: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/17.jpg)
Simplify your ext. dependency management
First try – SVN externals
yourpoject |-application |-library |---Facebook |-public |---js |---css |-tests
1. Step
Delete Zend directory
![Page 18: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/18.jpg)
Simplify your ext. dependency management
First try – SVN externals
yourpoject |-application |-library |---Facebook |-public |---js |---css |-tests
2. Step
svn propedit \
svn:externals library
Add line:
Zend/ http://framework...
![Page 19: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/19.jpg)
Simplify your ext. dependency management
First try – SVN externals
yourpoject |-application |-library |---Facebook |---Zend |-public |---js |---css |-tests
3. Step
svn commit &&
svn update
![Page 20: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/20.jpg)
Simplify your ext. dependency management
SVN externals - Recap
Links local dirs to remote SVN dirs
Synced on every (local) update
Pull-based system
![Page 21: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/21.jpg)
Simplify your ext. dependency management
SVN externals - Drawbacks
You can only reference other SVN repos!
You need access rights for the external repo!
You can commit to externals!
![Page 22: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/22.jpg)
Simplify your ext. dependency management
SVN externals – Pro tip I
Always link to a tag or branch, not to trunk!
![Page 23: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/23.jpg)
Simplify your ext. dependency management
SVN externals – Pro tip II
Add svn:externals only to direct parent directory!
![Page 24: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/24.jpg)
Simplify your ext. dependency management
First try – Alternatives?
![Page 25: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/25.jpg)
Simplify your ext. dependency management
First try – Alternatives?
Git + Git submodules
![Page 26: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/26.jpg)
Simplify your ext. dependency management
Git submodules
Clone external history and re-merge local changes
is a checkout of an external (Git) project
partial checkout possible
pull-based system
you need to manually merge fixes in local repo!
![Page 27: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/27.jpg)
Simplify your ext. dependency management
Some recap
![Page 28: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/28.jpg)
Simplify your ext. dependency management
Some recap
A VCS is not made for dependency management!
![Page 29: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/29.jpg)
Simplify your ext. dependency management
What else?
![Page 30: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/30.jpg)
Simplify your ext. dependency management
What else?
Requirements first!
![Page 31: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/31.jpg)
Simplify your ext. dependency management
What else?
1. Do not hide dependency metadata
![Page 32: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/32.jpg)
Simplify your ext. dependency management
What else?
2. Support transitive dependencies
![Page 33: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/33.jpg)
Simplify your ext. dependency management
What else?
3. Seperation from VCS
![Page 34: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/34.jpg)
Simplify your ext. dependency management
What else?
4. Do not reinvent the wheel
![Page 35: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/35.jpg)
Simplify your ext. dependency management
What else?
![Page 36: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/36.jpg)
Simplify your ext. dependency management
What else? - Packaging standards
*nix packages PEAR
![Page 37: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/37.jpg)
Simplify your ext. dependency management
What else? - Build Tools
Phing Maven
![Page 38: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/38.jpg)
Simplify your ext. dependency management
*nix packages – 4 steps to enlightenment
1. Create directory yourproject-0.0.1
![Page 39: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/39.jpg)
Simplify your ext. dependency management
*nix packages – 4 steps to enlightenment
2. dh_make –createorig -s
![Page 40: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/40.jpg)
Simplify your ext. dependency management
*nix packages – 4 steps to enlightenment
3. Add Makefile
![Page 41: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/41.jpg)
Simplify your ext. dependency management
*nix packages – 4 steps to enlightenment
BINDIR = $(DESTDIR)/usr/binclean:install:
mkdir -p $(BINDIR)cp info.php $(BINDIR)
uninstall:rm -f $(BINDIR)/info.php
![Page 42: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/42.jpg)
Simplify your ext. dependency management
*nix packages – 4 steps to enlightenment
4. fakeroot debian/rules binary
![Page 43: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/43.jpg)
Simplify your ext. dependency management
*nix packages – Dependencies?
![Page 44: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/44.jpg)
Simplify your ext. dependency management
*nix packages – Dependencies?
Add them to debian/control file
![Page 45: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/45.jpg)
Simplify your ext. dependency management
*nix packages - Pros
Independant of your repo state, build it manually
Dependency metadata not hidden!
*nix packages can depend on other packages
Allows dependencies on other system packages
![Page 46: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/46.jpg)
Simplify your ext. dependency management
*nix packages - Cons
Packaging diversity: .deb, .rpm, .tgz, ...
Only one version of a package for one server
![Page 47: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/47.jpg)
Simplify your ext. dependency management
PEAR package – 3 steps to enlightenment
1. Create directory yourproject-0.0.1
![Page 48: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/48.jpg)
Simplify your ext. dependency management
PEAR package – 3 steps to enlightenment
2. Create package.xml
![Page 49: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/49.jpg)
Simplify your ext. dependency management
PEAR package – 3 steps to enlightenment<?xml version="1.0" encoding="UTF-8"?><package packagerversion="1.8.0" version="2.0"xmlns="http://pear.php.net/dtd/package-2.0"xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> <name>Yourapp</name> <channel>pear.yourapp.com</channel> <summary>Yourapp summary</summary> <description>Yourapp description.</description> <lead> <name>Stephan Hochdoerfer</name> <user>sh</user>
![Page 50: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/50.jpg)
Simplify your ext. dependency management
PEAR package – 3 steps to enlightenment
3. pear package
![Page 51: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/51.jpg)
Simplify your ext. dependency management
PEAR packages - Pros
Similar to *nix packages, but platform independant
Transitive dependency management
Multiple versions of a package on one server (with work-a-round)
PEAR is a PHP standard way of distribution
Easy to set-up a server (Pyrus, Pirim, ...)
![Page 52: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/52.jpg)
Simplify your ext. dependency management
Phing
Is a build tool, is not aware of dependency management!
Can communicate with CVS, SVN, Git, ...
You need to provide your own dependency logic
No task to automatically deploy to PEAR / Pyrus / Pirum
![Page 53: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/53.jpg)
Simplify your ext. dependency management
What else?
Unfortunately the PHP community misses ONE tool to rule them all!
![Page 54: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/54.jpg)
Simplify your ext. dependency management
What else?
Java, anyone?
![Page 55: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/55.jpg)
Simplify your ext. dependency management
What is Maven?
Maven is a declarative project management tool.
![Page 56: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/56.jpg)
Simplify your ext. dependency management
Maven - Project Object Model
<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.0http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>com.zend</groupId><artifactId>framework</artifactId><packaging>jar</packaging><version>0.0.1-SNAPSHOT</version><name>Zend Framework</name>
</project>
![Page 57: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/57.jpg)
Simplify your ext. dependency management
What can Maven do?
After first downloading it,almost nothing, but...
![Page 58: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/58.jpg)
Simplify your ext. dependency management
What can Maven do?
Run goals
Run phases (which are a collection of goals)
Download (transitive) dependencies automatically
Download plugins as well!
Once downloaded provides offline access to the packages
![Page 59: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/59.jpg)
Simplify your ext. dependency management
Maven Beginners guide
1. Add Maven PHP repository
![Page 60: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/60.jpg)
Simplify your ext. dependency management
Maven Beginners guide
<pluginRepository><id>release-repo1.php-maven.org</id><name>PHP-Maven 2 Release Repository</name><url>http://repo1.php-maven.org/release</url><releases>
<enabled>true</enabled></releases>
</pluginRepository>
![Page 61: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/61.jpg)
Simplify your ext. dependency management
Maven Beginners guide
2. Create new Maven project
![Page 62: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/62.jpg)
Simplify your ext. dependency management
Maven Beginners guide
mvn archetype:generate \-DarchetypeGroupId=org.phpmaven \-DarchetypeArtifactId=php5-lib-archetype \-DarchetypeVersion=1.1 \-DgroupId=org.yourproject \-DartifactId=appname
![Page 63: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/63.jpg)
Simplify your ext. dependency management
Maven Beginners guide
2. Deploy your project
![Page 64: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/64.jpg)
Simplify your ext. dependency management
Maven Beginners guide
mvn deploy
![Page 65: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/65.jpg)
Simplify your ext. dependency management
Maven Bonus points
Lot`s of plugins, eg. Liquibase
Automatic release management
Automatic deployment
Build profiles
IDE support, e.g. Eclipse
![Page 66: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/66.jpg)
Thank you!
![Page 67: Simplify your external dependency managementdata.proidea.org.pl/4developers/3edycja/materialy/prezentacje/Extern… · Simplify your ext. Dependency Management About me Stephan Hochdörfer,](https://reader034.fdocuments.us/reader034/viewer/2022051808/60098b902e0bb1389f1f28db/html5/thumbnails/67.jpg)
Simplify your ext. dependency management
Image Credits
http://www.sxc.hu/photo/1092493