Should I use POM first or MANIFEST first when developing OSGi application with Maven? -


there 2 main approaches when developing osgi application maven: pom-first , manifest first.

i'm looking answer in form of table shows pros , cons of each method.

to more specific, know how relates to:

  • maturity of toolset
  • vendor independence
  • development ease (which includes finding people can development on tooling)
  • compatibility
  • avoiding classnotfound
  • avoiding manual work

at present can come with

pom-first pros (using maven-bundle-plugin)

  • leverages existing maven skills, repositories , tooling.
  • likely easier find people know how manage pom.xml rather manifest.mf along pom.xml
  • most of information in manifest.mf can obtained pom.xml itself.
  • can work other ides not eclipse based ones.
  • less invasive, add single plugin , change packaging type "bundle"

pom-first cons

  • classnotfoundexception more occur @ runtime. however, can mitigated using pax-exam (although complicated set up).
  • still need understand how manifest setup make sure instructions configuration element set correctly.

manifest-first pros (using tycho-maven-plugin)

  • seems recommended approach, or @ least talked recommended approach, can't see why has significant benefit. (hence why question asked).
  • good developing eclipse plugins , integrates pde
  • provides tooling testing allowing classnotfoundexception appear during junit testing rather runtime.

manifest-first cons

  • seems work on eclipse based ides. don't have use eclipse, without pde want to?
  • violates dry principles since have put keep names , versions pom , manifest.mf in sync.
  • need name things in specific fashion
  • you cannot mix, meaning existing maven multi-project installations cannot tack on osgi support
  • a lot more configuration compared maven-bundle-plugin needed less warnings: http://wiki.eclipse.org/tycho/reference_card#examplary_parent_pom
  • have make test cases separate project. won't run when built in src/test/java.
  • seems test classes exposed, in other words in ".internal." not testable.

if asked recommendation enterprise using maven , want move osgi pom first

if asked recommendation doing eclipse plugin development, manifest first -- tycho


Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

c++ - Accessing inactive union member and undefined behavior? -

php - Get uncommon values from two or more arrays -