samskivert 5cae01afd6 Second entry into "Why Maven sucks" journal:
Sun "enhanced" the jar file specification to allow dependencies to be expressed
inside jar files, which cause the JVM to try to magically add dependent jar
files to the classpath. This is half-assed and wrong in too many ways to
enumerate here.

They then helpfully added activation.jar to mail.jar under the multiple
misguided assumptions that no one would ever possibly need to use mail.jar
without also having activation.jar in their classpath, with that exact name,
and located precisely in the same directory. I can't possibly imagine devating
from those implicit requirements.

Maven then upped the ante on this little fiasco by deciding that any time the
Java compiler generates a warning that they can't parse, they should fail the
build. Clearly it's critical that your build system be conversant in every
possible warning that might be emitted by your compiler. As a result, when I
fix their boneheaded default of suppressing warnings by default, the build now
fails with this demonstration of awesomeness:

  could not parse error message: warning: [path] bad path element
  "/home/mdb/.m2/repository/javax/mail/mail/1.4.1/activation.jar": no such file
  or directory

Thank you Sun, and thank you Maven.

Fortunately, I can tell javac to not emit warnings for these bogus jar
dependencies, which I have done.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@2860 6335cc39-0255-0410-8fd6-9bcaacd3b74c
2010-09-08 22:56:00 +00:00
2007-04-06 23:14:43 +00:00
2010-09-08 19:08:01 +00:00
2010-07-06 17:54:54 +00:00
2010-09-08 19:08:53 +00:00
2010-08-27 21:33:16 +00:00

The samskivert library
----------------------

The samskivert library (SL) aims to provide useful reusable Java routines that
do things for which I've been unable to find useful reusable implementations on
the net.

Given the emphasis on reusability, SL attempts to closely adhere to the
following principles:

* Each individual module should depend as little as possible on other SL
  modules. Obvious exceptions include modules that are a logical extension of
  other modules and modules that clearly require a service that is implemented
  by another SL module and would have to implement that service themselves in
  the absence of dependence on the other module.

* Modules should be both simple to use and as general purpose as possible. To
  meet these two competing requirements, a balance must be struck at that sweet
  spot where reusability is maximized.

* Code included in SL will freely depend on JDK packages available in the Java
  2 platform and beyond. SL is initially a repository of software useful for
  server-side or stand alone applications and therefore need not make
  compromises to function in the jungle of JVMs in commonly available web
  browsers.

* We are not here to reinvent the wheel, nor to provide a uniform interface to
  every software service under the sun. If something is available in a freely
  redistributable and reusable form from someone else, it won't be found in SL.
  If SL depends on such software from another source, it will provide clear
  documentation on how to get that software and make use of it within the scope
  of SL's particular needs. Again a balance of reusability will be struck here
  and software that is sufficiently difficult to make usable in an arbitrary
  environment will not be used by SL and may be "reinvented".

Building
--------

The library is built using ant. If you aren't already using ant for other
projects, it can be found here:

  http://ant.apache.org/

Invoke ant with any of the following targets:

  all: builds the class files and javadoc documentation
  compile: builds only the class files (dist/classes)
  javadoc: builds only the javadoc documentation (dist/docs)
  tests: builds and runs the unit tests
  dist: builds the distribution jar file (dist/samskivert.jar)

It is highly recommended to use the Ivy-based build file, which will
automatically download any dependencies. The build file will also download Ivy
if needed. For example, to build everything invoke:

 % ant -f build-ivy.xml all

Distribution
------------

The samskivert library is released under the LGPL. The most recent version
of the library is available here:

  http://code.google.com/p/samskivert/

Contribution
------------

Contributions to SL are welcome. Email mdb@samskivert.com with patches or
suggestions.

$Id$
S
Description
Samskivert Library
Readme 15 MiB
Languages
Java 96.5%
Shell 2.2%
HTML 1.3%