in general, I try to stay away from technical separation of packages.
I usually have a module (I guess you called this project, the thing that delivers a Jar) for the “core-api” (commands, events, and shared value objects), one for the “command model” and one for the “query model”. The Event Listeners are tightly coupled to the query model, so I put them in the same package (and same module) as the query repositories.
Aggregates and entities are organized in functional packages in the “command model” module. If classes need eachother to do their job, they should be in the same package.
Command and Events are in a package in the core-api, again split on a functional level. Commands and events having to do with the same “domain concept” share a package.